0

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

提前致谢!

4

2 回答 2

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.

于 2013-06-06T12:41:03.297 回答
0

除了typeofstrsummary是其他可能性。这些也可以直接应用于数据帧,即不需要lapply或需要循环。

于 2013-06-07T09:06:22.463 回答