【发布时间】:2021-10-10 22:06:43
【问题描述】:
我有一个dataframe 和118 观察结果,总共有三列。现在,我想将此数据框拆分为twodataframes,每个都有59 观察。我尝试了两种不同的方法,但都没有返回我想要的结果。
如何在R 中使用dplyr 执行此操作?
示例数据框:
Code Count_2020 Count_2021
A 1 2
B 2 4
C 3 6
D 4 8
E 5 10
F 6 12
期望的输出:
DF1
Code Count_2020 Count_2021
A 1 2
B 2 4
C 3 6
DF2
Code Count_2020 Count_2021
D 4 8
E 5 10
F 6 12
第一种方法
基于此answer
library(tidyverse)
df= df %>% group_split(Code)
现在这会返回118 的列表,因此它是118 观察的列表,其中每个list 都有3 列。
第二种方法
基于此answer
library(tidyverse)
df= df %>% sample_n(size = 59) %>%
split(f = as.factor(.$Code))
现在这会返回59 的列表。
【问题讨论】:
-
您尝试使用的逻辑是什么?你有 118 个不同的代码,所以当你除以它时,你会得到 118 个数据帧……你期望的是什么?你的代码只知道你给它的逻辑,所以如果你想把代码集中在一起,或者你想拆分成一定数量的行或每个行的总行数的一定比例,你必须把它放在你的代码中
-
我明白了,这就是我改用第二种方法的原因
-
那么您是否想找到一种方法来做到这一点,而无需对每组的行数进行硬编码?