Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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_Dplyr_Reshape2 - Fatal编程技术网

R在给定条件下选择第一个值

R在给定条件下选择第一个值,r,dplyr,reshape2,R,Dplyr,Reshape2,我有“团队”、“得分”和“试验”列的数据。我想创建变量“sc3”、“sc7”、“sc9”、“sc3trial”、“sc7trial”、“sc9trial”,它们遵循以下规则: 规则对“sc#”很简单。注:这些是针对每组的: 对于“sc3”:如果得分,我们可以使用map与得分进行比较 data=data.frame("team"=c(1,1,1,2,2,2,3,3,3,4,4,4,5,5,5), "score"=c(4,8,10,3,10,5,4,2,7,7,5,6

我有“团队”、“得分”和“试验”列的数据。我想创建变量“sc3”、“sc7”、“sc9”、“sc3trial”、“sc7trial”、“sc9trial”,它们遵循以下规则:

规则对“sc#”很简单。注:这些是针对每组的:


  • 对于“sc3”:如果得分,我们可以使用
    map
    得分进行比较

    data=data.frame("team"=c(1,1,1,2,2,2,3,3,3,4,4,4,5,5,5),
                    "score"=c(4,8,10,3,10,5,4,2,7,7,5,6,5,9,1),
                    "trial"=c(1,2,3,1,2,3,1,2,3,1,2,3,1,2,3),
                    "sc3"=c(0,0,0,1,0,0,0,1,0,0,0,0,0,0,1),
                    "sc7"=c(0,0,0,1,0,1,1,1,1,1,1,1,1,0,1),
                    "sc9"=c(1,1,0,1,0,1,1,1,1,1,1,1,1,1,1),
                    "sc3trial"=c(-99,-99,-99,1,1,1,2,2,2,-99,-99,-99,3,3,3),
                    "sc7trial"=c(-99,-99,-99,1,1,1,1,1,1,1,1,1,1,1,1),
                    "sc9trial"=c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1))
    

    我们可以使用
    map
    score

    data=data.frame("team"=c(1,1,1,2,2,2,3,3,3,4,4,4,5,5,5),
                    "score"=c(4,8,10,3,10,5,4,2,7,7,5,6,5,9,1),
                    "trial"=c(1,2,3,1,2,3,1,2,3,1,2,3,1,2,3),
                    "sc3"=c(0,0,0,1,0,0,0,1,0,0,0,0,0,0,1),
                    "sc7"=c(0,0,0,1,0,1,1,1,1,1,1,1,1,0,1),
                    "sc9"=c(1,1,0,1,0,1,1,1,1,1,1,1,1,1,1),
                    "sc3trial"=c(-99,-99,-99,1,1,1,2,2,2,-99,-99,-99,3,3,3),
                    "sc7trial"=c(-99,-99,-99,1,1,1,1,1,1,1,1,1,1,1,1),
                    "sc9trial"=c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1))
    

    对于前3列,下面的代码是有效的,但我无法理解您对sc3trial、sc7trial和sc9trial的要求

    nm1 <- c('sc3', 'sc7', 'sc9')
    data[nm1] <- +(data[nm1] <= c(3, 7, 9)[col(data[nm1])])
    

    data$sc3=ifelse(data$score对于下面的代码的前3列,我无法理解您对sc3trial、sc7trial和sc9trial的要求

    nm1 <- c('sc3', 'sc7', 'sc9')
    data[nm1] <- +(data[nm1] <= c(3, 7, 9)[col(data[nm1])])
    

    data$sc3=ifelse(数据$score非常感谢大家——我想知道是否有一种严格的dplyr方法可以做到这一点?@bvowe我们不能使用
    purr
    是的,当然我只是想知道,因为我以前从未使用过它,所以我想知道“dplyr”解决方案是否可行。非常感谢大家——我想知道是否有一种严格的dplyr方法可以做到这一点?@bvowe我们不能使用
    purr
    是的吗se我只是想知道,因为我以前从未使用过它,所以我想知道“dplyr”解决方案是否可行。感谢abunch——对于其他3个变量,我只想存储符合标准的每组分数的第一次出现。所需输出显示在数据框“data”中是的,我理解sc7trial和sc9trial,但我不理解sc3trial。所有的sc#trial变量都是相同的想法为什么在第一个1之后有1,2,3和-99?谢谢abunch——对于其他3个变量,我只想存储符合标准的每组分数的第一次出现。所需输出显示在数据框中“数据”是的,我理解sc7trial和sc9trial的数据,但我不理解sc3trial的数据。所有的sc#trial变量都是相同的想法为什么在第一个1之后会有1,2,3和-99?一个混淆,标题中说选择第一个值,但在您的描述中,它说
    如果有“sc3”“==1
    。你能检查我的dplyr代码吗?这是预期的输出吗?在标题中它说选择第一个值,但在你的描述中,它说
    如果有“sc3”==1
    。你能检查我的dplyr代码吗?这是预期的输出吗
      data$sc3 = ifelse(data$score <= 3, 1, 0)
      data$sc7 = ifelse(data$score <= 7, 1, 0)
      data$sc7 = ifelse(data$score <= 9, 1, 0)