Using "by" with helper function error in r -
i'm trying apply helper function data frame factor. function works (i know because have used lot , works complete data frame) , spelling correct. however, when want apply error:
pru<-by( data = cs_us[,3:length(cs_us)], + indices = cs_us$ensayo, + fun =desplazar(cs_us$tiempo,cs_us[,3:length(cs_us)-1]) + ) error in fun(x[[1l]], ...) : not find function "fun" if try find it, in global environment
getanywhere(desplazar) single object matching ‘desplazar’ found found in following places .globalenv value function(tiempo,dataframe){ matriz = as.matrix(dataframe) matriz_dif = abs(diff(matriz )) # derivar matriz_dif_inv = diffinv(matriz_dif) # integrar return(data.frame(cbind(tiempo, matriz_dif_inv ))) } here's piece of data (just critical part have 2 factor levels)
dput(cs_us[120:140,]) structure(list(estado = c(3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 2l, 2l, 2l, 2l, 2l), tiempo = c(624, 624.2, 624.4, 624.6, 624.8, 625, 625.2, 625.4, 625.6, 625.8, 626, 626.2, 626.4, 626.6, 626.8, 627, 3120.2, 3120.4, 3120.6, 3120.8, 3121), ut2x45.1 = c(13666l, 13665l, 13664l, 13662l, 13661l, 13655l, 13651l, 13648l, 13647l, 13643l, 13642l, 13640l, 13638l, 13637l, 13637l, 13636l, 11115l, 11115l, 11115l, 11115l, 11115l ), ut2x45.2 = c(15357l, 15357l, 15357l, 15357l, 15357l, 15357l, 15357l, 15357l, 15357l, 15357l, 15357l, 15357l, 15357l, 15357l, 15357l, 15357l, 15087l, 15087l, 15087l, 15087l, 15087l), tr2x45.1 = c(15761l, 15755l, 15742l, 15729l, 15727l, 15726l, 15724l, 15722l, 15720l, 15716l, 15717l, 15715l, 15711l, 15708l, 15706l, 15704l, 15628l, 15628l, 15628l, 15628l, 15628l), tr2x45.2 = c(15381l, 15363l, 15342l, 15324l, 15320l, 15314l, 15308l, 15298l, 15296l, 15294l, 15293l, 15293l, 15293l, 15294l, 15294l, 15294l, 14238l, 14238l, 14238l, 14238l, 14238l), ut2x45.3 = c(15649l, 15649l, 15649l, 15649l, 15649l, 15649l, 15649l, 15649l, 15649l, 15649l, 15649l, 15649l, 15649l, 15649l, 15649l, 15649l, 15532l, 15532l, 15532l, 15532l, 15532l), ut2x45.4 = c(16038l, 16038l, 16038l, 16038l, 16038l, 16038l, 16038l, 16038l, 16038l, 16038l, 16038l, 16038l, 16038l, 16038l, 16038l, 16038l, 16136l, 16136l, 16136l, 16136l, 16136l), tr2x45.3 = c(15662l, 15658l, 15658l, 15657l, 15657l, 15653l, 15649l, 15648l, 15647l, 15646l, 15645l, 15644l, 15644l, 15637l, 15633l, 15632l, 16123l, 16123l, 16123l, 16123l, 16123l ), tr2x45.4 = c(15780l, 15761l, 15743l, 15732l, 15729l, 15726l, 15720l, 15715l, 15713l, 15712l, 15709l, 15705l, 15704l, 15703l, 15702l, 15702l, 15233l, 15233l, 15232l, 15233l, 15233l), tr2x45.5 = c(16072l, 16075l, 16077l, 16078l, 16078l, 16080l, 16082l, 16083l, 16084l, 16086l, 16087l, 16088l, 16088l, 16089l, 16091l, 16093l, 16198l, 16198l, 16198l, 16198l, 16198l), tr2x45.6 = c(16100l, 16087l, 16072l, 16062l, 16055l, 16049l, 16044l, 16040l, 16035l, 16030l, 16024l, 16025l, 16026l, 16024l, 16022l, 16022l, 16306l, 16306l, 16306l, 16306l, 16306l), ut2x45.5 = c(15642l, 15642l, 15642l, 15642l, 15642l, 15642l, 15642l, 15642l, 15642l, 15642l, 15642l, 15642l, 15642l, 15642l, 15642l, 15642l, 16140l, 16140l, 16140l, 16140l, 16140l), ut2x45.6 = c(16546l, 16546l, 16546l, 16546l, 16546l, 16546l, 16546l, 16546l, 16546l, 16546l, 16546l, 16546l, 16546l, 16546l, 16546l, 16546l, 16428l, 16428l, 16428l, 16428l, 16428l), tr2x45.7 = c(19030l, 19035l, 19033l, 19029l, 19028l, 19027l, 19026l, 19025l, 19023l, 19022l, 19022l, 19022l, 19022l, 19022l, 19022l, 19022l, 20119l, 20119l, 20118l, 20119l, 20120l ), tr2x45.8 = c(20874l, 20883l, 20886l, 20887l, 20889l, 20891l, 20896l, 20898l, 20899l, 20901l, 20903l, 20907l, 20912l, 20916l, 20920l, 20923l, 29200l, 29200l, 29200l, 29200l, 29200l), ut2x45.7 = c(15731l, 15730l, 15729l, 15729l, 15726l, 15724l, 15722l, 15722l, 15722l, 15722l, 15722l, 15722l, 15722l, 15722l, 15722l, 15722l, 15567l, 15567l, 15567l, 15567l, 15567l), ut2x45.8 = c(14584l, 14584l, 14584l, 14584l, 14584l, 14584l, 14584l, 14584l, 14584l, 14584l, 14584l, 14584l, 14584l, 14584l, 14584l, 14584l, 14080l, 14080l, 14080l, 14080l, 14082l), ut2x45.9 = c(15900l, 15900l, 15901l, 15902l, 15902l, 15908l, 15911l, 15911l, 15912l, 15913l, 15913l, 15913l, 15913l, 15913l, 15913l, 15913l, 15941l, 15941l, 15941l, 15941l, 15941l), ut2x45.10 = c(14906l, 14906l, 14906l, 14906l, 14906l, 14906l, 14906l, 14906l, 14906l, 14906l, 14906l, 14906l, 14906l, 14906l, 14906l, 14906l, 13890l, 13890l, 13890l, 13890l, 13890l), tr2x45.9 = c(16072l, 16072l, 16072l, 16072l, 16072l, 16072l, 16072l, 16072l, 16072l, 16071l, 16071l, 16071l, 16071l, 16071l, 16071l, 16071l, 16240l, 16240l, 16240l, 16240l, 16240l ), tr2x45.10 = c(13995l, 13981l, 13948l, 13929l, 13916l, 13906l, 13900l, 13893l, 13881l, 13870l, 13863l, 13854l, 13846l, 13839l, 13834l, 13826l, 3363l, 3363l, 3363l, 3363l, 3363l), ut2x45.11 = c(16673l, 16673l, 16673l, 16673l, 16673l, 16673l, 16673l, 16673l, 16673l, 16673l, 16673l, 16673l, 16673l, 16673l, 16673l, 16673l, 17391l, 17391l, 17391l, 17391l, 17391l), ut2x45.12 = c(16197l, 16194l, 16194l, 16194l, 16192l, 16191l, 16191l, 16190l, 16188l, 16185l, 16185l, 16184l, 16184l, 16184l, 16183l, 16182l, 16493l, 16493l, 16493l, 16493l, 16493l), tr2x45.11 = c(15590l, 15588l, 15587l, 15587l, 15585l, 15585l, 15585l, 15585l, 15584l, 15584l, 15584l, 15584l, 15590l, 15590l, 15590l, 15589l, 15464l, 15464l, 15464l, 15464l, 15464l), tr2x45.12 = c(13279l, 13255l, 13221l, 13190l, 13182l, 13177l, 13174l, 13166l, 13159l, 13157l, 13154l, 13147l, 13141l, 13138l, 13138l, 13135l, 8705l, 8705l, 8705l, 8705l, 8705l ), tr2x45.13 = c(14342l, 14342l, 14342l, 14342l, 14342l, 14342l, 14342l, 14342l, 14342l, 14342l, 14342l, 14342l, 14343l, 14342l, 14341l, 14341l, 13276l, 13276l, 13276l, 13276l, 13276l), tr2x45.14 = c(17163l, 17163l, 17163l, 17163l, 17163l, 17163l, 17163l, 17163l, 17163l, 17163l, 17163l, 17163l, 17163l, 17163l, 17163l, 17163l, 17888l, 17888l, 17888l, 17888l, 17888l), ut2x45.13 = c(15769l, 15769l, 15769l, 15769l, 15769l, 15769l, 15769l, 15769l, 15769l, 15769l, 15769l, 15769l, 15769l, 15769l, 15769l, 15769l, 15702l, 15702l, 15702l, 15702l, 15702l), ut2x45.14 = c(18606l, 18606l, 18606l, 18606l, 18606l, 18606l, 18606l, 18606l, 18606l, 18606l, 18606l, 18606l, 18606l, 18606l, 18606l, 18606l, 22677l, 22677l, 22677l, 22677l, 22677l), tr2x45.15 = c(15986l, 15989l, 15990l, 15990l, 15990l, 15990l, 15990l, 15990l, 15989l, 15988l, 15988l, 15988l, 15988l, 15988l, 15988l, 15988l, 15998l, 15998l, 15998l, 15998l, 15998l), tr2x45.16 = c(16328l, 16347l, 16362l, 16367l, 16366l, 16365l, 16366l, 16366l, 16366l, 16366l, 16366l, 16366l, 16366l, 16366l, 16366l, 16366l, 17946l, 17946l, 17946l, 17946l, 17946l ), ut2x45.15 = c(15768l, 15768l, 15768l, 15768l, 15768l, 15768l, 15768l, 15768l, 15768l, 15768l, 15768l, 15768l, 15768l, 15768l, 15768l, 15768l, 16168l, 16168l, 16168l, 16168l, 16168l), ut2x45.16 = c(16040l, 16040l, 16040l, 16040l, 16040l, 16040l, 16040l, 16040l, 16040l, 16040l, 16040l, 16040l, 16040l, 16040l, 16040l, 16040l, 16037l, 16037l, 16037l, 16037l, 16037l), ut2x45.17 = c(15749l, 15749l, 15749l, 15749l, 15749l, 15749l, 15749l, 15749l, 15749l, 15749l, 15749l, 15749l, 15749l, 15749l, 15749l, 15749l, 15677l, 15677l, 15677l, 15677l, 15677l), ut2x45.18 = c(18179l, 18179l, 18179l, 18179l, 18179l, 18179l, 18179l, 18179l, 18179l, 18179l, 18179l, 18179l, 18179l, 18179l, 18179l, 18179l, 16152l, 16152l, 16152l, 16152l, 16152l), tr2x45.17 = c(16423l, 16426l, 16427l, 16428l, 16428l, 16428l, 16428l, 16428l, 16428l, 16428l, 16428l, 16428l, 16428l, 16428l, 16428l, 16428l, 17110l, 17110l, 17110l, 17110l, 17110l), tr2x45.18 = c(13624l, 13613l, 13586l, 13573l, 13566l, 13558l, 13554l, 13548l, 13546l, 13543l, 13540l, 13538l, 13533l, 13531l, 13527l, 13526l, 12369l, 12369l, 12369l, 12369l, 12369l ), ut2x45.19 = c(8263l, 8259l, 8257l, 8255l, 8254l, 8253l, 8252l, 8250l, 8246l, 8239l, 8235l, 8235l, 8234l, 8232l, 8229l, 8226l, 1579l, 1579l, 1579l, 1579l, 1579l), ut2x45.20 = c(17469l, 17469l, 17470l, 17471l, 17473l, 17475l, 17475l, 17475l, 17475l, 17476l, 17477l, 17479l, 17481l, 17482l, 17482l, 17483l, 19822l, 19822l, 19823l, 19823l, 19824l), tr2x45.19 = c(15723l, 15709l, 15671l, 15634l, 15617l, 15598l, 15582l, 15568l, 15557l, 15547l, 15537l, 15526l, 15517l, 15506l, 15501l, 15496l, 14338l, 14338l, 14338l, 14338l, 14338l), tr2x45.20 = c(15818l, 15822l, 15825l, 15829l, 15833l, 15837l, 15838l, 15839l, 15840l, 15841l, 15843l, 15845l, 15847l, 15849l, 15851l, 15854l, 14945l, 14945l, 14945l, 14945l, 14945l), ensayo = structure(c(1l, 1l, 1l, 1l, 1l, 1l, 1l, 1l, 1l, 1l, 1l, 1l, 1l, 1l, 1l, 1l, 2l, 2l, 2l, 2l, 2l), .label = c("e1", "e2"), class = "factor")), .names = c("estado", "tiempo", "ut2x45.1", "ut2x45.2", "tr2x45.1", "tr2x45.2", "ut2x45.3", "ut2x45.4", "tr2x45.3", "tr2x45.4", "tr2x45.5", "tr2x45.6", "ut2x45.5", "ut2x45.6", "tr2x45.7", "tr2x45.8", "ut2x45.7", "ut2x45.8", "ut2x45.9", "ut2x45.10", "tr2x45.9", "tr2x45.10", "ut2x45.11", "ut2x45.12", "tr2x45.11", "tr2x45.12", "tr2x45.13", "tr2x45.14", "ut2x45.13", "ut2x45.14", "tr2x45.15", "tr2x45.16", "ut2x45.15", "ut2x45.16", "ut2x45.17", "ut2x45.18", "tr2x45.17", "tr2x45.18", "ut2x45.19", "ut2x45.20", "tr2x45.19", "tr2x45.20", "ensayo"), row.names = c("3117", "3118", "3119", "3120", "3121", "3122", "3123", "3124", "3125", "3126", "3127", "3128", "3129", "3130", "3131", "3132", "15598", "15599", "15600", "15601", "15602"), class = "data.frame")
you can try
by(cs_us[,(3:length(cs_us))-1], cs_us$ensayo, fun= function(x) desplazar(x$tiempo, x[,-1] ) ) or
map(desplazar, split(cs_us$tiempo, cs_us$ensayo), split(cs_us[3:(ncol(cs_us)-1)], cs_us$ensayo)) you can modify desplazar , remove anonymous function call in by
desplazar1 <- function(data){ matriz <- as.matrix(data[-1]) matriz_dif <- abs(diff(matriz)) matriz_dif_inv <- diffinv(matriz_dif) data.frame(tiempo=data['tiempo'], matriz_dif_inv) } by(cs_us[,(3:length(cs_us))-1], cs_us$ensayo, fun=desplazar1)
Comments
Post a Comment