问题描述
我是R Studio编程的新手,我已经读到for并不是很方便,因为它比较慢,最好使用lapply或sapply,我已经阅读了这些功能,但是我不知道该怎么做将它们用作对象,例如,有人可以给出如何进行转换的想法
我具有生成因果关系文件的功能,可对变量的滞后进行迭代
x1 = c(-0.0299866283,0.0235518790,-0.0001197221,-0.0428492516,-0.0990239145,-0.0203502306,0.0781700219,0.1464398561,-0.0342636547,-0.0654044270,0.0054757448,-0.0067150796,0.0073807483,0.0238836094,-0.0581543453,-0.0170408109,0.0493252510,0.0645691525,0.0168188020,0.0204135046,-0.0918274741,-0.0746011382,-0.0464632617,-0.0749340418,-0.0713731990,-0.1625527697,-0.1157101167,0.0849001087,-0.0129359567,0.0315187922,0.0376426892,-0.0313674887,-0.0350068065,-0.0611992683,0.0242613447,0.0660830056,0.0149004768,0.0388733439,0.0355662138,-0.0676267933,0.1271992420,0.0110945114,0.0186193619,0.0476522500,0.0290232740,0.1752169336,-0.0041379712,0.0556849479,0.0120169896,0.3879820407,0.3486858052,-0.1107573150,-0.3412089361,-0.0762121091,-0.1746095214,-0.1121520053,0.1131165327,0.0330311689,0.0808472065,-0.0355411319,0.1886731416,-0.1597952108,0.0693427139,-0.0779262288,0.0996711197,0.0733973480,0.1547623633,0.0967582072,-0.0746841725,-0.1052624908,0.0060656362,-0.0330954802,-0.3550102330,-0.1622511708,-0.0201922734,0.1211712436,0.0191167841,-0.0054011150,-0.0738403729,-0.0782892862,0.0178855515,-0.0495518092,-0.0198129825,-0.0525975485,0.2249224238,0.2035995289,-0.0932569249,-0.2154225756)
y = c( 0.0169067854,0.0013231121,-0.0007174322,0.0084558387,-0.0090787404,0.0133012906,-0.0076665372,0.0039913192,-0.0159375663,-0.0036724120,0.0057383762,0.0074242408,0.0046921519,-0.0051604212,-0.0093304064,0.0139492020,-0.0091363942,0.0066959909,0.0025805511,-0.0040549209,0.0178920487,-0.0007610884,0.0192646130,-0.0096396926,0.0128706392,-0.0035715316,-0.0179652866,0.0320838462,-0.0236862397,0.0013863615,0.0131308900,-0.0012981394,-0.0190800883,0.0107994082,0.0140394910,0.0002722933,0.0027834236,-0.0138695535,0.0079483070,0.0271744257,-0.0420936953,0.0185328286,0.0042984271,-0.0032503170,-0.0043424918,0.0113892185,-0.0070820808,0.0149787087,-0.0008597256,-0.0067400770,-0.0049723828,0.0240221120,-0.0094854855,0.0012744849,0.0205626967,-0.0289605642,0.0022572723,-0.0114831765,0.0201517288,0.0111093338,-0.0178246618,0.0054359713,-0.0032158002,-0.0130836746,0.0149271260,-0.0018724002,0.0036070040,0.0054713729,0.0050082573,-0.0144878614,0.0136804292,-0.0020209741,-0.0120954635,0.0003639872,-0.0174631442,0.0097095961,0.0218612099,-0.0177664851,0.0029422008,-0.0018866515,0.0081182771,-0.0247203741,0.0331249152,-0.0127253287,0.0207296003,0.0105733754,-0.0684221424,0.0791521722)
x2 = c( -11.96,-49.70,5.01,43.18,15.78,-3.41,62.69,37.52,-38.67,45.10,-20.78,-30.59,47.82,-5.05,81.43,46.64,-89.58,-30.18,-34.50,-19.45,-8.76,46.19,109.86,22.04,155.67,186.27,48.64,55.89,79.06,-187.99,145.73,51.32,280.93,235.06,20.84,-224.11,203.27,48.37,137.84,18.69,-283.65,-171.21,218.03,-153.02,165.60,-147.93,-53.87,87.71,197.43,-164.38,-64.05,-40.39,-16.03,67.61,-27.43,117.84,-43.03,-58.14,-0.42,74.77,-5.35,-22.09,-139.86,11.79,-75.46,25.81,73.04,51.48,-55.08,151.67,-55.21,230.26,37.58,9.73,-86.29,-91.45,102.78,72.93,110.10,-152.15,91.18,130.44,34.72,-72.07,132.54,-245.34,134.31,128.41)
all = as.data.frame(cbind(y,x1,x2))
colnames(all) = c("obj","x1","x2")
nombre_obj <- colnames(all)[1]
Causalidad_Granger <- function(DATOS)
{
Matrix_Granger <- data.frame(matrix(0,((ncol(DATOS)*4)+1),3))
colnames(Matrix_Granger) <- c("Variables","Lags","Causality")
nombres <- names(DATOS)
m = 0
for (i in 2:ncol(DATOS)){
for (j in 1:16){
m<-m+1
Data = as.data.frame(cbind(DATOS[,1],DATOS[,i]))
Test_Granger_x <- grangertest(Data[,2] ~ Data[,order = j)
Matrix_Granger[m,1] <- paste(nombres[(i)],"->",nombres[1])
Matrix_Granger[m,2] <- j
Matrix_Granger[m,3] <- if((Test_Granger_x$`Pr(>F)`[2] < 0.05)){"Yes"}else{"No"}
}}
setwd("C:/Users/portter/Desktop")
write.csv(Matrix_Granger,paste0("Granger_Matrix","_",nombre_obj,".csv"),row.names = FALSE)
}
Causalidad_Granger(all)
该函数可以用作lapply或sapply,因为我不仅使用了2个变量,而且还使用了很多变量,我想了解如何使该函数适用于lapply或sapply以便将其应用于
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)