【发布时间】:2022-07-20 23:33:23
【问题描述】:
我如何根据 Numeric_variable 包含 2 个用于某些单位(例如 A)和 3 个用于某些其他单位(例如 B)的事实来子集以下数据集?
Unit | Numeric_variable
A | 1
A | 1
A | 2
A | 2
A | 2
A | 2
B | 1
B | 1
B | 3
B | 3
B | 3
B | 3
进入:
df1:
Unit | Numeric_variable
A | 1
A | 1
A | 2
A | 2
A | 2
A | 2
df2:
Unit | Numeric_variable
B | 1
B | 1
B | 3
B | 3
B | 3
B | 3
通过df1 <- df[which(df$Numeric_variable != 3),],我得到了以下不是我想要得到的。我想得到上面的df1。
Unit | Numeric_variable
A | 1
A | 1
A | 2
A | 2
A | 2
A | 2
B | 1
B | 1
【问题讨论】:
-
使用
split(df, df$Unit) -
谢谢@akrun,不幸的是它不起作用,因为它创建了一个列表,我的数据集中有很多单位和其他变量。我需要使用 Numeric_variable 的值,但我不明白为什么 which 命令没有像我想象的那样工作。
-
不建议在全局环境中创建多个对象。但是如果你坚持使用
list,你可以使用list2env来创建对象,即lst1 <- split(df, df$Unit); list2env(lst1, .GlobalEnv)
标签: r conditional-statements subset