【问题标题】:How do I compute means in data frame in rows in R?如何在 R 中的行中计算数据框中的平均值?
【发布时间】:2020-07-06 07:59:38
【问题描述】:

我再次请求您的支持!

我有数据框,其中显示了有关国家/地区的不同指标,您可以在图片中看到它们

我想将所有这些不定值计算到一个新变量中,但我不知道该怎么做。我尝试了rowMeans()函数,但我可能是一个非常愚蠢的人,所以我没有成功计算。

mean() 不起作用 - 似乎“参数不是数字或逻辑:NAs to return”。我还担心mean() 将整个列中的均值计算为向量,而不是按我需要的行。 再次 - 我需要从国家# 变量中接收数据框中每个观察值的平均值。

谁能帮我完成这个非常简单的任务?

【问题讨论】:

  • 你的预期输出是什么
  • 请不要发布代码/数据/错误的图像:它不能被复制或搜索 (SEO),它会破坏屏幕阅读器,并且它可能不适合某些移动设备。参考:meta.stackoverflow.com/a/285557/3358272(和xkcd.com/2116)。请直接包含代码、控制台输出或数据(例如,dput(head(x))data.frame(...))。
  • @akrun 我想要一个新变量,其值为 ONLY "nation#" 表示
  • @r2evans 对不起,我的错
  • 请让这个问题可重现。这包括您尝试过的示例代码(包括列出非基础 R 包,以及收到的逐字错误/警告)、示例明确数据(例如,dput(head(x))data.frame(x=...,y=...))和预期输出.参考:stackoverflow.com/questions/5963269minimal reproducible examplestackoverflow.com/tags/r/info

标签: r dataframe mean


【解决方案1】:

我们可以使用rowMeansstartsWith

rowMeans(dat[startsWith(colnames(dat), "nation")])

【讨论】:

  • 谢谢,但是这个变体仍然计算所有变量的平均值:(
  • @k1rgas 它只计算“国家”变量(类似于其他答案)
  • 我尝试了您的变体并收到了整个 NA 专栏
  • @k1rgas 你有吗?数据集中的 NA 还是列数字?如果它不是数字,那么它可以以 NA 结尾
  • 没有 NA,但其他变量是因子或字符。并非所有值都是数字或整数。
【解决方案2】:
dat <- data.frame(
  nation1 = c(0,3,5,3,5,4), nation2 = c(4,2,5,3,5,4),
  ethnicity1 = c(5,5,5,5,5,2), ethnicity2 = c(5,5,5,2,4,4)
)
rowMeans(dat[, grepl("^nation", colnames(dat))])
# [1] 2.0 2.5 5.0 3.0 5.0 4.0

【讨论】:

  • 谢谢你,但它并没有帮助我:(
  • 祝你好运,k1rgas。我们没有您的数据(您期望我们手动转录),并且您没有给我们任何错误。然后在你对 akrun 的评论中,你说 “只为‘国家’变量计算”,你能解释为什么这与你的其他评论不一致 “想要一个值为 ONLY 的新变量“国家#”的意思是“.
猜你喜欢
  • 2020-12-16
  • 1970-01-01
  • 1970-01-01
  • 2017-09-24
  • 2020-04-02
  • 1970-01-01
  • 1970-01-01
  • 2015-08-02
  • 2017-12-04
相关资源
最近更新 更多