通过R中的条件对数据帧进行子集设置
我有以下带有受试者ID的数据通过R中的条件对数据帧进行子集设置,r,dataframe,conditional-statements,subset,R,Dataframe,Conditional Statements,Subset,我有以下带有受试者ID的数据 V1 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 2 11 2 12 2 13 2 14 2 15 2 16 4 17 4 18 4 19 4 20 4 21 4 22 4 23 4 24 4 我想对V1==4的所有数据行进行子集划分。这样我就可以看出哪些观察与主题4有关 例如,正确的输出是 16 4 17 4 18 4 19 4 20 4 21 4 2
V1
1 2
2 2
3 2
4 2
5 2
6 2
7 2
8 2
9 2
10 2
11 2
12 2
13 2
14 2
15 2
16 4
17 4
18 4
19 4
20 4
21 4
22 4
23 4
24 4
我想对V1==4的所有数据行进行子集划分。这样我就可以看出哪些观察与主题4有关
例如,正确的输出是
16 4
17 4
18 4
19 4
20 4
21 4
22 4
23 4
24 4
但是,在子集设置之后给出的输出并没有给出正确的行。它只是给了我一个简单的答案
V1
1 4
2 4
3 4
4 4
5 4
6 4
7 4
8 4
我不知道哪些观察与主题4有关,因为观察1:8是针对主题2的
我试过常用的方法,比如
condition<- df == 4
df[condition]
condition发布后,我设法找到了解决方案
newdf <- subset(df, V1 == 4).
newdf您还可以使用subset函数:
subset(df,df$V1==4)
您没有一个列的标题try哪个(df$V1==4)
子集(df,V1==4)
?您的id似乎是行名。如果您真的需要它们,那么将它们变成一个实际变量就更容易了df$id还可以添加df[df$V1==4,drop=F]
too您不应该使用R
对象作为用户创建对象的名称:您应该调用data.frame,而不是df
@stasg,这在R问题中非常常见。@Docendiscimus是的,我知道:(@stasg该参数在一般意义上是正确的,但不应将其与使用c
、t
或str
作为名称进行比较。这些参数尤其有问题,因为它们是常用的。您上一次使用df
是什么时候?您是对的,它是次优的,但对于示例来说非常快速和有用。我同意.但我必须坚持一个例外。它不仅在历史上被用作默认名称,而且实际上效果很好。它类似于已成为常见用法的俚语。例如,带翅膀在空中飞行的机器最初被称为“飞机”,用于描述正在进行的科学。因此许多人错误地称它为“飞机”最终卡住的“飞机”。)