使用R中的分隔符将行拆分为列

时间:2015-06-09 15:16:29

标签: r split read.csv

我的数据是这样的:

ID:10:237,204,
ID:11:257,239,
ID:12:309,291,
ID:13:310,272,
ID:14:3202,3184,
ID:15:404,388,

我想首先将它分成不同的列,然后在每一行上应用一个函数来计算逗号分隔值的差异,如(237-204)。 不使用外部库包。

1 个答案:

答案 0 :(得分:1)

尝试此操作,但如果数据位于文件中,则用以下内容替换readLines行:L <- readLines("myfile.csv")。之后使用gsub用逗号替换冒号,然后阅读生成的文本并transform

# test data
Lines <- "ID:10:237,204,
ID:11:257,239,
ID:12:309,291,
ID:13:310,272,
ID:14:3202,3184,
ID:15:404,388,"

L <- readLines(textConnection(Lines))
DF <- read.table(text = gsub(":", ",", L), sep = ",")
transform(DF, diff = V3 - V4)

,并提供:

  V1 V2   V3   V4 V5 diff
1 ID 10  237  204 NA   33
2 ID 11  257  239 NA   18
3 ID 12  309  291 NA   18
4 ID 13  310  272 NA   38
5 ID 14 3202 3184 NA   18
6 ID 15  404  388 NA   16