Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/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中的一行_R_Data.table_Sqldf_Subset - Fatal编程技术网

将一列拆分为若干列,并将它们转换为r中的一行

将一列拆分为若干列,并将它们转换为r中的一行,r,data.table,sqldf,subset,R,Data.table,Sqldf,Subset,请帮助我如何编码以从数据中获得以下结果。。我有一个包含1000000多行的数据帧,其中包含非连续NA。我想把TA_DAY列拆分成这样:“1~5,6~10…继续..结束”直到最后一行,然后像下面的一样合并它们。。。有人有什么想法或建议吗?哪个功能?我应该用它吗?提前感谢你,G日 for(i in 0:161){ aa[i+1]<-melt(dt4$WSmax[1:12+(12*i)]) } list <- unlist(aa, recursive = FALSE) df <

请帮助我如何编码以从数据中获得以下结果。。我有一个包含1000000多行的数据帧,其中包含非连续NA。我想把TA_DAY列拆分成这样:“1~5,6~10…继续..结束”直到最后一行,然后像下面的一样合并它们。。。有人有什么想法或建议吗?哪个功能?我应该用它吗?提前感谢你,G日

for(i in 0:161){
  aa[i+1]<-melt(dt4$WSmax[1:12+(12*i)])
}

list <- unlist(aa, recursive = FALSE)
df <- do.call("rbind", aa)




 ID YEAR PRICE                                    this is the one that i need 
    --------------                                  -------------------                          
    A  2001 19.45                                   19.45 98.23 12.33
    A  2003 98.23                                    NA   77.4  32.33
    B  2009 12.33               =>           
    C  2001  NA
    C  2004 77.4
    D  1999 32.33
    .
    .
for(0:161中的i){
aa[i+1]
数据

dat我不完全清楚需要什么,因为描述似乎与样本输出不一致。我假设除了
PRICE
之外的所有列都可以忽略,我们希望
PRICE
的每个值以及前面3个位置的值,因为这给出了样本输出。在这种情况下,
动物园的rollapply可以做到这一点。这里有两种不同的方法:

library(zoo)

t(rollapply(dat$PRICE, 4, function(x) c(x[1], x[4])))
##       [,1]  [,2]  [,3]
## [1,] 19.45 98.23 12.33
## [2,]    NA 77.40 32.33
使用rollapply执行此操作的另一种方法:

t(rollapply(dat$PRICE, list(c(0, 3)), identity))
##       [,1]  [,2]  [,3]
## [1,] 19.45 98.23 12.33
## [2,]    NA 77.40 32.33

我在您之前的帖子中评论了使用
dput
显示数据集。在阅读了预期输出中的描述
1~5th
6~10th..
后,还不清楚,您正在输入价格1和4、2和5等。感谢您的评论…我只是通过阅读您的评论了解了dput功能。
dput
输出是我粘贴到解决方案中的输出。
library(zoo)

t(rollapply(dat$PRICE, 4, function(x) c(x[1], x[4])))
##       [,1]  [,2]  [,3]
## [1,] 19.45 98.23 12.33
## [2,]    NA 77.40 32.33
t(rollapply(dat$PRICE, list(c(0, 3)), identity))
##       [,1]  [,2]  [,3]
## [1,] 19.45 98.23 12.33
## [2,]    NA 77.40 32.33