作者AmigoSafin ()
看板R_Language
标题[问题] Read in ranks
时间Fri Apr 27 13:34:02 2018
[问题类型]:
请把以下不需要的部份删除
意见调查(我对R 有个很棒的想法,想问问大家的意见)
程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
[软体熟悉度]:
请把以下不需要的部份删除
新手(没写过程式,R 是我的第一次)
[问题叙述]:
大家好,
我有1000个baby names的dataset
(dataset只有一个)
名字长相为:
Jacob (1) Benjamin (25) Hunter (49) Diego (73) Miguel (97) Michael (2)
Zachary (26)
以上为第一个row
我使用read.fwf想读入dataset
但错误讯息显示我没有widths
我的code为
bnames <- read.fwf(paste0(dirdata, "top-1000-baby-names.txt",widths,
header = FALSE, sep = "\t",
skip = 0, row.names, col.names, n = -1,
buffersize = 2000, fileEncoding = ""))
请问:
1)我是否应该一项一项define widths 只是遇到()我该怎麽处理?
()内为rank
2)若是我转换为csv档案会比较好读入吗?
谢谢大家~~
[程式范例]:
[关键字]:
选择性,也许未来有用
--
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 66.66.198.92
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1524807246.A.FDB.html
1F:→ andrew43: 读入後针对"(数字)"做字串处理再转回数字型态就好了 04/27 14:43
2F:→ andrew43: x <- c("(26)", "(1234456)", "(0)") 04/27 14:45
3F:→ andrew43: as.numeric(gsub("^\\(([[:digit:]]+)\\)$", "\\1", x)) 04/27 14:46
4F:→ andrew43: 喔我看错问题了... sorry 04/27 14:47
5F:→ andrew43: 各列栏位各数不同可用data.table::fread(..., fill = T) 04/27 14:52
6F:→ andrew43: 若栏数相同则read.table(..., sep=" ")就可以了 04/27 14:55
7F:→ andrew43: 至於read.fwf适合各栏内字元数皆相同的情况 04/27 14:56
8F:推 Edster: 这到不一定, 如果是气象资料, 空白也是资料的这种就要 04/27 17:18
9F:→ Edster: 用read.fwf, 要看的资料决定.我是花半小时多自己建width 04/27 17:20
10F:→ Edster: 应该没有其他聪明的方法了. 04/27 17:21
11F:推 andrew43: 嗯嗯我确实没考虑空白怎麽看待。视之後需求。 04/27 19:08
12F:→ AmigoSafin: 了解~~似乎是没有,但我看解答用scan读入 我再试试tks 04/28 23:05