R和附加到数据帧
我有一些互相关函数crosscor,我想循环遍历数据矩阵中每个列的函数。该函数每次运行时都会输出一些类似以下内容的互相关:R和附加到数据帧,r,R,我有一些互相关函数crosscor,我想循环遍历数据矩阵中每个列的函数。该函数每次运行时都会输出一些类似以下内容的互相关: Lags Cross.Correlation P.value 1 0 -0.0006844958 0.993233547 2 1 0.1021006478 0.204691627 3 2 0.0976746274 0.226628526 4 3 0
Lags Cross.Correlation P.value
1 0 -0.0006844958 0.993233547
2 1 0.1021006478 0.204691627
3 2 0.0976746274 0.226628526
4 3 0.1150337867 0.155426784
5 4 0.1943150900 0.016092041
6 5 0.2360415470 0.003416147
7 6 0.1855274375 0.022566685
8 7 0.0800646242 0.330081900
9 8 0.1111071269 0.177338885
10 9 0.0689602574 0.404948252
11 10 -0.0097332533 0.906856279
12 11 0.0146241719 0.860926388
13 12 0.0862549791 0.302268025
14 13 0.1283308019 0.125302070
15 14 0.0909537922 0.279988895
16 15 0.0628012627 0.457795228
17 16 0.1669241304 0.047886605
18 17 0.2019811994 0.016703619
19 18 0.1440124960 0.090764520
20 19 0.1104842808 0.197035340
21 20 0.1247428178 0.146396407
我想把所有的列表放在一起,使它们在一个数据框中,并最终将其导出到一个csv文件中,因此列如下:lags.3,cross-correlation.3,p-value.3,lags.3,cross-correlation.2…等等。直到p.50
我已尝试按如下方式使用do.call,但未成功:
for(i in 3:50)
{
l1<-crosscor(data[,2], data[,i], lagmax=20)
ccdata<-do.call(rbind, l1)
cat("Data row", i)
}
for(3:50中的i)
{
l1data.frames有一种转置方法。如果“crosscor”是对象的名称,请尝试以下方法:
tcrosscor <- t(crosscor)
write.csv(tcrosscor, file="my_crosscor_1.csv")
tcrosscor啊,对不起,我认为我最初的问题不清楚。我实际上发现,我认为最简单的方法就是将我创建的每个新数据集与以前的数据集合并,而不是尝试附加到一个新数据集。
tcrosscor <- t(crosscor)
write.csv(tcrosscor, file="my_crosscor_1.csv")
single_line <- as.data.frame(unlist(tcrosscor))
names(single_line) <- paste("Lag", 'Cross.Correlation', 'P.value'), rep(1:50, 3), sep=".")
write.csv(single_line, file="my_single_1.csv")