我有这个小数据集
structure(list(score = c("mine_score", "your_score", "mine_score",
"your_score", "mine_score", "your_score"), points = c(53, 13.25,
17.5, 1.59090909090909, 48.5, 6.92857142857143)), row.names = c(NA,
-6L), class = c("tbl_df", "tbl", "data.frame"))
应用此公式时:
mean(long[long$score == 'mine_score', "points"], na.rm = TRUE)
我收到此错误,但无法找出原因:
Warning message:
In mean.default(long[long$score == "mine_score", "points"], na.rm = TRUE) :
the argument is not numeric or logic: returns NA
有人可能知道这个错误是由什么引起的吗? 谢谢
最佳答案
您的查询返回一个单列数据框,意味着
无法理解;它必须返回一个向量。您可以使用 $
返回向量:
mean(long$points[long$score == 'mine_score'], na.rm = TRUE)
#[1] 39.66667
如果您确实想坚持原始查询,可以使用 [[1]]
将数据帧的第一列作为向量返回:
mean(long[long$score == 'mine_score', "points"][[1]], na.rm = TRUE)
关于r - 无法计算条件均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75362822/