我是R的新用户。我有这种数据类型。如何从中分离不同类型的变量(例如,二元或计数;或其他变量)?
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12
0.17 0 0 12 22 2 1 1 240.215 65.049 1.478 114
0.15 1 0 13 22 2 1 1 247.133 66.315 1.474 120
0.16 0 0 12 22 2 0 1 233.329 58.163 1.353 110
0.07 0 0 12 20 2 0 1 219.660 56.162 1.370 114
0.11 0 0 12 26 2 0 2 289.294 70.844 1.389 134
提前致谢!
答案 0 :(得分:4)
您可以使用函数typeof
来确定对象的存储模式。
示例数据框:
dat <- data.frame(a = 1:2,
b = c(0.5, -1.3),
c = c("a", "b"),
d = c(TRUE, FALSE), stringsAsFactors = FALSE)
使用lapply
,您可以将该功能应用于所有列:
lapply(dat, typeof)
结果:
$a
[1] "integer"
$b
[1] "double"
$c
[1] "character"
$d
[1] "logical"
如果要选择(例如)所有字符列,可以使用:
dat[sapply(dat, typeof) == "character"] # possibility 1
dat[sapply(dat, is.character)] # possibility 2
# both commands will return the same result
c
1 a
2 b
PS:您还应该查看函数mode
和storage.mode
。
答案 1 :(得分:0)
除了typeof
之外,str
和summary
还有其他可能性。这些也可以直接应用于数据框,即不需要lapply
或循环。