R中的数据扩散和同时NA下降?
我需要在R中重塑一个数据帧,但我找不到一篇文章来描述我需要的重塑类型的解决方案。我的数据框如下所示:R中的数据扩散和同时NA下降?,r,dplyr,tidyr,R,Dplyr,Tidyr,我需要在R中重塑一个数据帧,但我找不到一篇文章来描述我需要的重塑类型的解决方案。我的数据框如下所示: # Sample data frame. time <- c(1:8) aoi <- c("a", "b", "c", NA, "a", "c", NA, "b") df <- data.frame(time, aoi) time aoi 1 a 2 b 3 c 4 <NA> 5 a 6
# Sample data frame.
time <- c(1:8)
aoi <- c("a", "b", "c", NA, "a", "c", NA, "b")
df <- data.frame(time, aoi)
time aoi
1 a
2 b
3 c
4 <NA>
5 a
6 c
7 <NA>
8 b
谢谢你的帮助 您是否尝试过:
df1 <- spread(df,aoi,-time)
data.frame(time=d1$time
,a=as.integer(!is.na(df1$a))
,b=as.integer(!is.na(df1$b))
,c=as.integer(!is.na(df1$c)))
# time a b c
#1 1 1 0 0
#2 2 0 1 0
#3 3 0 0 1
#4 4 0 0 0
#5 5 1 0 0
#6 6 0 0 1
#7 7 0 0 0
#8 8 0 1 0
df1尝试library(重塑2);dcast(df,time~aoi,fun.aggregate=length)[,c('time','a','b','c')]
谢谢@Nicolas2!我希望用一种更短的方法来摆脱NAs,但这也行得通。
df1 <- spread(df,aoi,-time)
data.frame(time=d1$time
,a=as.integer(!is.na(df1$a))
,b=as.integer(!is.na(df1$b))
,c=as.integer(!is.na(df1$c)))
# time a b c
#1 1 1 0 0
#2 2 0 1 0
#3 3 0 0 1
#4 4 0 0 0
#5 5 1 0 0
#6 6 0 0 1
#7 7 0 0 0
#8 8 0 1 0