Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R数据表选择行_R_Data.table - Fatal编程技术网

R数据表选择行

R数据表选择行,r,data.table,R,Data.table,我有'data1'并希望'data2',如果'Grade'=1的'Score'至少为4,我只包括'Student' 我唯一知道如何做到这一点的是按“等级”和“分数”来做,但这并不能给出期望的结果 data1=data.frame("Student"=c(1, 1, 1, 2, 2, 2, 3, 3, 3), "Grade"=c(1, 2, 3, 1, 2, 3, 1, 2, 3), "Score"=c(5, 7, 9, 2, 2, 3, 10, NA, 3)) data2=data.fram

我有'data1'并希望'data2',如果'Grade'=1的'Score'至少为4,我只包括'Student'

我唯一知道如何做到这一点的是按“等级”和“分数”来做,但这并不能给出期望的结果

data1=data.frame("Student"=c(1, 1, 1, 2, 2, 2, 3, 3, 3),
"Grade"=c(1, 2, 3, 1, 2, 3, 1, 2, 3),
"Score"=c(5, 7, 9, 2, 2, 3, 10, NA, 3))


data2=data.frame("Student"=c(1, 1, 1, 3, 3, 3),
"Grade"=c(1, 2, 3, 1, 2, 3),
"Score"=c(5, 7, 9, 10, NA, 3))

如何才能指定我希望选择1年级成绩>=4的所有学生,而不仅仅是行您只需使用所需的条件进行连接即可保留
学生id

这行吗

库(data.table)
数据11:15
#> 2:       1     2     7
#> 3:       1     3     9
#> 4:       3     1    10
#>5:32 NA
#> 6:       3     3     3
数据3
#>学生成绩
#> 1:       1     1     5
#> 2:       1     2     7
#> 3:       1     3     9
#> 4:       3     1    10
#>5:32 NA
#> 6:       3     3     3

由(v0.3.0)

于2020-04-29创建的可以做
setDT(data1)[如果(分数[Grade==1]>=4).SD,by=Student]
或更麻烦的
setDT(data1)[data1[Grade==1&Score>=4],.SD,on=.(Student)]
@David Arenburg非常感谢您,它在玩具示例中有效,但在实际数据中有效:“:参数长度为零”可能是因为您的学生没有
成绩==1
library(data.table)
setDT(data1)
data1=data1[Grade==1 & Score >=4)