所以我有这个变量测试分数是编码的规模从1-9。我必须采取那些谁的分数1-3低,4-6好,7-9高的新变量。然后必须作出一个新的变量,比较低和高,一个变量比较低和好。
test_scores<- c(sample(1:10, 122, replace = TRUE)
test_scores<-as.data.frame(test_scores)
low<- filter(test_scores,test_scores1 > 3)
high<- filter(test_scores, test_scores< 7)
good<-filter(test_scores,test_scores== 4:6)
但新变量中的N不计数到122
我想到使用if函数:
low<- ifelse(test_scores$test_scores == 1:3 , 1:3 , 0)
mods<- ifelse(test_scores$test_scores == 4:6, 4:6, 0)
high<- ifelse(test_scores$test_scores == 7:9, 7:9, 0)
但是有些分数没有过滤,而是变成0,即使分数匹配。有什么想法吗?
1条答案
按热度按时间cngwdvgl1#
您可以使用“cut”来生成新的bin:
如果希望每个bin都有一个变量,否则为零,则必须使用
%in%
,而不是==