Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 应用函数在2个数据帧中获取匹配列,在列上循环_R_Function_Apply_T Test - Fatal编程技术网

R 应用函数在2个数据帧中获取匹配列,在列上循环

R 应用函数在2个数据帧中获取匹配列,在列上循环,r,function,apply,t-test,R,Function,Apply,T Test,我有以下两个数据帧 df1 <- as.data.frame(matrix(runif(50), nrow = 10, byrow = TRUE)) colnames(df1) <- c("x1", "x2", "x3", "x4", "x5") df2 <- as.data.frame(matrix(runif(100), nrow = 20, byrow = TRUE)) c

我有以下两个数据帧

df1 <- as.data.frame(matrix(runif(50), nrow = 10, byrow = TRUE))
colnames(df1) <- c("x1", "x2", "x3", "x4", "x5")
df2 <- as.data.frame(matrix(runif(100), nrow = 20, byrow = TRUE))
colnames(df2) <- c("x1", "x2", "x3", "x4", "x5")
apply()似乎只接受一个df作为输入?在j上循环上述两条线的最佳方式是什么


提前谢谢

您可以在R中使用常规的
for
循环,通过在列名上循环来实现这一点

cols[1]“t-统计量:-0.3435717107623”
#>[1]“p值:0.7361266387073”
#>测试柱x3
#>[1]“t-统计量:0.248037735890824”
#>[1]“p值:0.807107717907307”
#>测试列x4
#>[1]“t-统计:0.992363174130968”
#>[1]“p值:0.333989277352541”
#>测试柱x5
#>[1]“t-统计:2.06600413500528”
#>[1]“p值:0.05276522524211”

于2020-11-02由(v0.3.0)

apply
lappy
vapply
sapply
所有循环在单个对象上创建。如果您有
m
多个,则需要
mapply
Map

mapply(function(x,y) t.test(x,y)[c("statistic","p.value")], df1, df2)
#          x1        x2        x3         x4        x5       
#statistic 0.6816886 -1.408304 -0.2598513 -0.890468 -1.097354
#p.value   0.5028386 0.1721202 0.7982655  0.3825847 0.2851621

这假设
df1
df2
的列顺序相同。

那是什么语言?matlab?R.添加了一个标签来反映这一点。谢谢
mapply(function(x,y) t.test(x,y)[c("statistic","p.value")], df1, df2)
#          x1        x2        x3         x4        x5       
#statistic 0.6816886 -1.408304 -0.2598513 -0.890468 -1.097354
#p.value   0.5028386 0.1721202 0.7982655  0.3825847 0.2851621