dplyr:行方式变异为NA时出错
我在dplyr:行方式变异为NA时出错,r,dplyr,na,R,Dplyr,Na,我在dplyr中的行方式mutate中遇到了奇怪的错误。以下是一个例子: set.seed(1) df <- data.frame(a = rnorm(5), b = rnorm(5)) df[2,'b'] <- NA 现在,我们可以在第一列中尝试NA: df <- data.frame(a = rnorm(5), b = rnorm(5)) df[2,'a'] <- NA mutate(rowwise(df), sum(a, b, na.rm = T)) # wor
dplyr
中的行方式mutate
中遇到了奇怪的错误。以下是一个例子:
set.seed(1)
df <- data.frame(a = rnorm(5), b = rnorm(5))
df[2,'b'] <- NA
现在,我们可以在第一列中尝试NA
:
df <- data.frame(a = rnorm(5), b = rnorm(5))
df[2,'a'] <- NA
mutate(rowwise(df), sum(a, b, na.rm = T)) # works
mutate(rowwise(df), mean(a, b, na.rm = T))
#! no error, but returns `NaN`
mutate(rowwise(df), median(a, b, na.rm = T))
#! Error: unused argument (-0.820468384118015)
谢谢 您的错误是调用的
mean
和median
不正确
虽然sum
可以接受任意数量的参数,只需将它们全部相加,mean
和median
只接受一个x
参数以获取参数的平均值/中位数
就像如果a
和b
是向量,你想要组合向量的平均值,你会使用mean(c(a,b))
而不是mean(a,b)
,你在这里也这样做:
mutate(rowwise(df), mean=mean(c(a, b), na.rm = T), med=median(c(a, b), na.rm=T))
(旁注:您一次只计算两个值的平均值和中位数,因此平均值等于中位数…您的错误是调用的
平均值和中位数不正确
虽然sum
可以接受任意数量的参数,只需将它们全部相加,mean
和median
只接受一个x
参数以获取参数的平均值/中位数
就像如果a
和b
是向量,你想要组合向量的平均值,你会使用mean(c(a,b))
而不是mean(a,b)
,你在这里也这样做:
mutate(rowwise(df), mean=mean(c(a, b), na.rm = T), med=median(c(a, b), na.rm=T))
(旁注:您在这里一次只计算两个值的平均值和中位数,因此平均值等于中位数…Trydf%>%rowwise()%%>%mutate(mean=mean(c(a,b),na.rm=TRUE))
Trydf%>%rowwise()%%mutate(mean=mean(c(a,b),na.rm=TRUE))
mutate(rowwise(df), mean=mean(c(a, b), na.rm = T), med=median(c(a, b), na.rm=T))