1

我有一个大型数据框,我正在尝试运行 a for loop,但需要先获取所有不同的观察结果。我目前正在尝试处理的过程是这样的:

  1. 创建观察的列表/向量/数据框
  2. 在 a 中使用每个观察for loop

这是我解决它的方法:

生成一些数据:

x <- gl(12,5)

我正在寻找的结果是所有不同观察结果的列表:

1 2 3 4 5 6 7 8 9 10 11 12

我可以创建一个data frame,然后像这样删除数字列:

list <- data.frame(table(x))

list[,2] <- NULL

print(list)

从这个列表/向量/数据框,我会for loop像这样运行:

for (i in list) print(i)

必须有一种更有效的方法来获取for loop. 有人可以推荐一个吗?

4

1 回答 1

4

几个选项包括:

R> unique(x)
 [1] 1  2  3  4  5  6  7  8  9  10 11 12
Levels: 1 2 3 4 5 6 7 8 9 10 11 12
R> levels(x)
 [1] "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "10" "11" "12"
R> as.numeric(levels(x))
 [1]  1  2  3  4  5  6  7  8  9 10 11 12

levels()如果您想要分组,这些是最合乎逻辑和最合适的。

现在你是否真的想要这是另一个问题。查看?split哪个可以根据一个因素(您可以lapply()超过)或?aggregate其他因素来拆分数据框。还有plyr包,它似乎很受欢迎。

于 2012-10-17T19:41:06.117 回答