cei*_*cat 9 csv string r strsplit
我需要处理一些主要是csv的数据.问题是如果它出现在行的末尾(例如,下面示例中的3之后的那个),则R忽略逗号.
> strsplit("1,2,3,", ",")
[[1]]
[1] "1" "2" "3"
Run Code Online (Sandbox Code Playgroud)
[1] "1" "2" "3" NA相反,我希望将其读入.我怎样才能做到这一点?谢谢.
这里有几个想法
scan(text="1,2,3,", sep=",", quiet=TRUE)
#[1] 1 2 3 NA
unlist(read.csv(text="1,2,3,", header=FALSE), use.names=FALSE)
#[1] 1 2 3 NA
Run Code Online (Sandbox Code Playgroud)
这些都返回整数向量.您可以环绕as.character其中任何一个以获得您在问题中显示的确切输出:
as.character(scan(text="1,2,3,", sep=",", quiet=TRUE))
#[1] "1" "2" "3" NA
Run Code Online (Sandbox Code Playgroud)
或者,你可以指定what="character"的scan,或者colClasses="character"在read.csv对输出结果略有不同
scan(text="1,2,3,", sep=",", quiet=TRUE, what="character")
#[1] "1" "2" "3" ""
unlist(read.csv(text="1,2,3,", header=FALSE, colClasses="character"), use.names=FALSE)
#[1] "1" "2" "3" ""
Run Code Online (Sandbox Code Playgroud)
你也可以指定na.strings=""随colClasses="character"
unlist(read.csv(text="1,2,3,", header=FALSE, colClasses="character", na.strings=""),
use.names=FALSE)
#[1] "1" "2" "3" NA
Run Code Online (Sandbox Code Playgroud)
Hadley stringi(以及之前的stringr)库是基本字符串函数的一个巨大改进(完全矢量化,一致的函数接口):
require(stringr)
str_split("1,2,3,", ",")
[1] "1" "2" "3" ""
as.integer(unlist(str_split("1,2,3,", ",")))
[1] 1 2 3 NA
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1699 次 |
| 最近记录: |