【问题标题】:Take average between two columns for each row取每行两列之间的平均值
【发布时间】:2016-04-09 01:00:41
【问题描述】:

我想逐行取两列的平均值。

关于数据的更多信息:我有一群参与者来参加一项研究,我想从两个不同的列中获取他们的分数,取平均值,然后将它们放入一个新列中。

例如,我想要这个:

Participant #   Score A   Score B   Score C   Score D
1               30.0      32.0      48.2      39.2      
2               43.4      59.3      39.1      78.4
3               92.0      0.90      39.0      87.4

变成了这个

    Participant #   Score A   Score B   Score C   Score D   Score A + B Average
    1               30.0      32.0      48.2      39.2      31.00
    2               43.4      59.3      39.1      78.4      51.35
    3               92.0      0.90      39.0      87.4      46.45

谢谢。

【问题讨论】:

  • 如果没有NA,做(df[2]+df[3])/2第二个平均数好像不正确
  • 你可以做df$whatever <- rowMeans(df[2:3])
  • 对不起,我的意思是补充说数据框中也有不同的列。所以我想选择列。

标签: r average


【解决方案1】:

如果需要平均值的列的名称由名为 clnames 的字符给出,那么试试这个:

clnames <- c("A","B")
dfrm$scrAM_means <- rowMeans ( dfrm[clnames] )

【讨论】:

    【解决方案2】:

    发表我的评论作为答案。

    df$scrAB_means <- (df[["Score A"]] + df[[["Score B"]])/2
    

    【讨论】:

      【解决方案3】:

      您还可以执行以下操作:

       data$meanAB<-(data$scoreA+data$scoreB)/2
      

      或使用 dplyr

      data<-data%>%
         group_by(participant)%>%
         mutate(meanAB=(scoreA+scoreB)/2)
      

      【讨论】:

        猜你喜欢
        • 2023-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多