我的数据:
IS NOT NULL
带有 df_1 <- data.frame(
x = replicate(
n = 3,
expr = runif(n = 30, min = 20, max = 100)
),
y = sample(
x = 1:3, size = 30, replace = TRUE
)
)
的跟随代码有效:
lapply
但是,使用lapply(X = names(df_1)[c(1:3)], FUN = function(x) {
pairwise.t.test(
x = df_1[, x],
g = df_1[['y']],
p.adj = 'bonferroni'
)
})
不会:
apply
apply错误(X =名称(df_1)[c(1:3)],MARGIN = 2,FUN = function(x){: dim(X)必须为正长度
为什么会出问题?它们不相等吗?
答案 0 :(得分:1)
要申请,您应该改用
apply(X = df_1[1:3], MARGIN = 2, FUN = function(x) {
pairwise.t.test(
x = x,
g = df_1[['y']],
p.adj = 'bonferroni'
)
})
那是因为来自?apply
如果MARGIN的长度为1,并且尺寸为dim(X)[MARGIN]的数组,则应用返回向量。
您尝试将names(df_1)[c(1:3)]
用作具有
apply
的参数
dim(names(df_1)[c(1:3)])[2]
#NULL
因此,您会收到错误消息。