R中混合类型的变量

时间:2013-06-06 12:18:41

标签: r

我是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

提前致谢!

2 个答案:

答案 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:您还应该查看函数modestorage.mode

答案 1 :(得分:0)

除了typeof之外,strsummary还有其他可能性。这些也可以直接应用于数据框,即不需要lapply或循环。