R数据。表计数和存储唯一行
我有带“学生”和“分数”的“数据”,希望生成包含每个学生行数的数据列“WANT1”,如果“WANT1'>1,则“WANT2”等于“1”,如果“WANT1'<1,则等于“0”。我希望data.table解决方案在按“student”分组后,将行数(R数据。表计数和存储唯一行,r,data.table,R,Data.table,我有带“学生”和“分数”的“数据”,希望生成包含每个学生行数的数据列“WANT1”,如果“WANT1'>1,则“WANT2”等于“1”,如果“WANT1'
n()
)获取为“newwant1”,并检查该值是否大于1,将其强制为二进制,使用as.integer
或+
data=data.frame("student"=c(1,1,2,2,2,2,3),
"score"=c(7,1,5,0,5,2,1),
"WANT1"=c(2,2,4,4,4,4,1),
"WANT2"=c(1,1,1,1,1,1,0),
"WANT3"=c(1,1,0,0,0,0,1))
如果我们使用
data.table
library(dplyr)
data %>%
group_by(student) %>%
mutate(newwant1 = n(), newwant2 = +(newwant1 > 1))
按“student”分组后,将行数(
n()
)获取为“newwant1”,并检查该值是否大于1,将其强制为二进制,使用as.integer
或+
data=data.frame("student"=c(1,1,2,2,2,2,3),
"score"=c(7,1,5,0,5,2,1),
"WANT1"=c(2,2,4,4,4,4,1),
"WANT2"=c(1,1,1,1,1,1,0),
"WANT3"=c(1,1,0,0,0,0,1))
如果我们使用
data.table
library(dplyr)
data %>%
group_by(student) %>%
mutate(newwant1 = n(), newwant2 = +(newwant1 > 1))
您知道data.table解决方案吗这太完美了谢谢--我的最后一个问题是,我如何识别data.table解决方案来存储每个id的最低分数,如更新的示例数据文件“WANT3”中所示?我忘了在开头加上这句话。WANT3为每个学生找到最低分数,并在专栏中报告。学生1得7分,1分,所以是1分。学生2的最低分数为0,因此他们的值为0谢谢我在我的真实数据中意识到这一点我有“na”,所以我必须将na.omit设置为true谢谢。我想这可能是讽刺=)@bvowe
min
havena.rm
参数,所以你可以使用min(score,na.rm=TRUE)
你知道data.table解决方案吗这太完美了谢谢你--我的最后一个问题是,如何识别data.table解决方案来存储每个id的最低分数,如更新的示例数据文件“WANT3”中所示?我忘了在开头加上这句话。WANT3为每个学生找到最低分数,并在专栏中报告。学生1得7分,1分,所以是1分。学生2的最低分数为0,因此他们的值为0谢谢我在我的真实数据中意识到这一点我有“na”,所以我必须将na.omit设置为true谢谢。我想这可能是讽刺=)@bvowemin
havena.rm
参数,所以你可以使用min(score,na.rm=TRUE)