我有一个数据框(st1),我按因子分割。然后,我通过另一个因素对分割数据(即均值)执行了函数,因此,我不能再执行unsplit,因为我的原始数据帧现在具有不同的长度。
至于引导你完成我的工作,这里有一段代码:
NT = data.table(st1)
NT2=split (NT, NT$bin)
NT3 <- data.frame(sapply( NT2 , function(x) x[, list(ang=length(unique(thetadeg)), len=length(T), Vm=mean(V)), by=c("A")]))
st1的负责人:
结构(列表(A = c(25L,25L,25L,25L,25L,25L),T = 56:61, X = c(481.07,487.04,490.03,499,504.97,507.96),Y = c(256.97, 256.97,256.97,256.97,256.97,256.97),V = c(4.482,5.976, 7.47,4.482,5.976,7.47),thetarad = c(0.164031585831919, 0.169139558949956,0.171661200692621,0.177083242584008, 0.183907246800473,0.186289411097781),thetadeg = c(9.39831757286096, 9.69098287432395,9.83546230358968,10.2607139792383,10.537109061132, 10.6735970214433),bin =结构(c(1L,1L,1L,1L,1L, 1L),. Label = c(“binA”,“binB”,“binC”,“outbin”),class =“factor”)),. Name = c(“A”,“T”,“X”, “Y”,“V”,“thetarad”, “thetadeg”,“bin”),row.names = c(NA,6L),class =“data.frame”)
我没有为我的NT3设置一个dput(head),因为它太长了。
我尝试过unsplit,取消列表但未成功。我想做的是再次使用bin作为一个数据框。
任何帮助都会很棒。
编辑:我希望我的数据框有A,ang,len,Vm和bin作为标题。
答案 0 :(得分:1)
您的预期输出并不完全清楚,但看看NT3
的内容,这可能会更有效:
NT <- data.table(ST1, key="A")
NT[, list(ang=length(unique(thetadeg))
, len=length(T)
, Vm=mean(V))
, by=list(A, bin) ]
答案 1 :(得分:0)
我设法找到了我做错了什么,所以现在可行了:
NT <- data.table(st1, key="bin")
NT2=NT[, list(ang=length(unique(thetadeg)), len=length(T), Vm=mean(V)), by=c("A", "bin")]
显然我已经可以在data.table
中通过@Ricardo Saporta提出的声明来做。谢谢你!