【发布时间】:2013-06-24 16:47:16
【问题描述】:
例如,我有一个数据框,
X1 12:37
X2 3,0,0
我想将 3 个 0 和 0 分别提取到一个新的数据框中。
不知道我该怎么做??
提前谢谢...
【问题讨论】:
例如,我有一个数据框,
X1 12:37
X2 3,0,0
我想将 3 个 0 和 0 分别提取到一个新的数据框中。
不知道我该怎么做??
提前谢谢...
【问题讨论】:
您可以使用strsplit 获取数字:
strsplit("3,0,0", ",")
尚不清楚您的数据实际上是在数据框中还是仅在向量中(R 新手倾向于将包含数据的所有内容称为“数据框”),但希望您可以了解如何应用函数。
【讨论】:
您可以先阅读您的行并将它们拆分以从行名中提取数字。
ll <- readLines(textConnection('X1 12:37
X2 3,0,0'))
res <- strsplit(ll,' ')
[[1]]
[1] "X1" "12:37" ""
[[2]]
[1] "X2" "" "3,0,0"
或者使用read.table:
res1 <- read.table(text='X1 12:37
X2 3,0,0')
V1 V2
1 X1 12:37
2 X2 3,0,0
例如,您可以访问包含逗号的元素,然后像其他解决方案所述再次应用strsplit。
unlist(res)[grep(',',unlist(res))]
"3,0,0"
【讨论】:
使用@agstudy 的“res1”:
res1 <- read.table(
text='X1 12:37
X2 3,0,0')
temp <- read.table(text = as.character(res1$V2),
sep = ",", header = FALSE, fill = TRUE)
temp
# V1 V2 V3
# 1 12:37 NA NA
# 2 3 0 0
temp[complete.cases(temp), ]
# V1 V2 V3
# 2 3 0 0
【讨论】: