如何选择现有列并使用函数运行统计测试?



我有一个数据帧(df(。要创建新的数据帧 (df1(,我想从原始数据帧 (df( 中选择列。使用 df1,我想省略 NA 并运行统计测试。最后,我希望这个过程作为一个函数。

library(dplyr)
#create example dataframe
A<-c(1,2,1,2,1,2,1)
B<-c(5,2,4,1,5,1,NA)
D<-c(99,99,88,88,99,99,88)
E<-c(10,10,20,10,20,20,20)
df <- data.frame(A,B,D,E)
#Single step process works
df1 <- dplyr::select(df, A, B)
df1 <- na.omit(df1)
wilcox.test(df1$B~df1$A)
#Function does not work
lazy <- function(x,y,z){
x <- dplyr::select(df, y, z)
x <- na.omit(x)
e <- wilcox.test(x$z~x$y)
return(e)
}
lazy(df2,A,E)

错误:inds_combine(.vars, ind_list( 中的错误:位置必须介于 0 和 n 之间

lazy <- function(x, y, z){
x <- df[c(y, z)]
x <- na.omit(x)
e <- wilcox.test(x[[z]]~x[[y]])
return(e)
}
lazy(df, "A", "B")

最新更新