【发布时间】:2019-10-03 10:58:39
【问题描述】:
我有一个如下的数据框:
df <- data.frame(group = c("A", "B", "C", "D", "E"),
country=c("US","UK"),
md = runif(10,0,10),
og = runif(10, 0, 10))
并希望在每一行中应用 wilcox 函数来比较每个组和每个国家/地区的 md 和 og。
results <- apply(df,1,function(x){
df <- data.frame(x)
wres<-wilcox.test(df$md,df$og)
df$test<-format(wres$p.value,scientific = F)
})
我想让另一列包含 P 值。 但是当我运行它时,它给了我以下错误:
Error in wilcox.test.default(df$mean_modified, df$mean_original) :
'x' must be numeric
【问题讨论】:
-
要将它应用于您可以执行的每一行
mapply(function(x, y) wilcox.test(x, y)$p.value, df$md, df$og),但这是您想要的吗? -
如何在你提到的函数中得到一个新的列名p.value
-
我已经使用以下方法重命名它,但你有更好的选择:df1