作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你好:谁能提供一个外行的解释,为什么这两种尝试计算行平均值的方法不同?
谢谢。
library(tidyverse)
var1<-rnorm(100)
var2<-rnorm(100)
var3<-rnorm(100)
df<-data.frame(var1, var2, var3)
#ADD IN A MISSING VALUE
df[1,1]<-NA
#I thought this would work
df %>%
select(starts_with('var')) %>%
rowwise() %>%
mutate(avg=mean(., na.rm=T))
#This does work but I don't understand why
df %>%
rowwise() %>%
mutate(avg=
mean(
c_across(starts_with('var')), na.rm=T)
)
最佳答案
.
代表整个数据集而不是分组数据。 mean
不适用于数据框。 (见 mean(mtcars)
)dplyr
您可以使用 1.0.0(或更高版本)
cur_data()
在组中获取数据但在
mean
中使用它您需要将其更改为矢量,这可以通过
unlist
完成或
as.matrix
.所以尝试:
library(dplyr)
df %>%
select(starts_with('var')) %>%
rowwise() %>%
mutate(avg=mean(unlist(cur_data()), na.rm=T))
但是,您的第二种方法是使用
rowwise
的正确方法。 .
关于r - 理解 rowwise() 和 c_across(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64282839/
我有以下数据: dat % rowwise() %>% mutate(marker = str_c(c_across(c(sheet, starts_with("condition"))),
你好:谁能提供一个外行的解释,为什么这两种尝试计算行平均值的方法不同? 谢谢。 library(tidyverse) var1% select(starts_with('var')) %>%
我是一名优秀的程序员,十分优秀!