我有一个像这样的长数据帧:
Row Conc group
1 2.5 A
2 3.0 A
3 4.6 B
4 5.0 B
5 3.2 C
6 4.2 C
7 5.3 D
8 3.4 D
Run Code Online (Sandbox Code Playgroud)
...
实际数据有数百行.我想将A分为C和D.我查阅了网页,找到了几个解决方案,但不适用于我的情况.
例如:案例1:
x = data.frame(num = 1:26, let = letters, LET = LETTERS)
set.seed(10)
split(x, sample(rep(1:2, 13)))
Run Code Online (Sandbox Code Playgroud)
我不想以任意数字分割
案例2:按级别/因子拆分
data2 <- data[data$sum_points == 2500, ]
Run Code Online (Sandbox Code Playgroud)
我也不想分开一个因素.有时我想将多个层次结合在一起.
案例3:按行号选择
newdf <- mydf[1:3,]
Run Code Online (Sandbox Code Playgroud)
实际数据有数百行.我不知道行号.我只知道我想分开的级别.
听起来好像您想要两个数据帧,其中一个包含(A,B,C)其中,一个仅包含其中D。在这种情况下,您可以
Data1 <- subset(Data, group %in% c("A","B","C"))
Data2 <- subset(Data, group=="D")
Run Code Online (Sandbox Code Playgroud)
如果您有其他疑问,请纠正我
对于那些一次又一次通过互联网搜索引擎来到这里的人来说,标题中问题的答案是:
x <- data.frame(num = 1:26, let = letters, LET = LETTERS)
split(x, sort(as.numeric(rownames(x))))
Run Code Online (Sandbox Code Playgroud)
假设您的数据框具有按数字顺序排列的行名称。也split(x, rownames(x))有效,但结果被重新排列。