[英]Constructing column of time series in R data frame
考慮
x=data.frame(a=c(5,2,7),b=c(3,5,NA),c=c(NA,NA,8))
paste_noNA<-function(x){ts(x[!is.na(x)],frequency=1)}
x$n<-apply(x,1,paste_noNA)
在運行最后一條語句時,出現錯誤
Error in `$<-.data.frame`(`*tmp*`, n, value = c(5, 3, 2, 5, 7, 8)) :
replacement has 2 rows, data has 3
我想要在新列 n 中以時間序列形式的輸出是:
5,3
2,5
7,8
有人可以幫忙嗎?
將ts
的輸出包裝在一個列表中並將其應用於該行。
x=data.frame(a=c(5,2,7),b=c(3,5,NA),c=c(NA,NA,8))
paste_noNA<-function(x) list(ts(x[!is.na(x)],frequency=1))
x$n <- apply(x,1,paste_noNA)
x
# a b c n
#1 5 3 NA 5, 3
#2 2 5 NA 2, 5
#3 7 NA 8 7, 8
當您分別查看n
列時 -
x$n
#[[1]]
#[[1]][[1]]
#Time Series:
#Start = 1
#End = 2
#Frequency = 1
#a b
#5 3
#[[2]]
#[[2]][[1]]
#Time Series:
#Start = 1
#End = 2
#Frequency = 1
#a b
#2 5
#[[3]]
#[[3]][[1]]
#Time Series:
#Start = 1
#End = 2
#Frequency = 1
#a c
#7 8
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.