本文介绍了长到宽没有唯一的密钥的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这个数据集:
VAR= c('X1','X1','X1','X1','X2','X2','X2','X3','X3','X3','X3','X3')
Ranking= c(1,2.5 ,2.5 ,1.5 ,1.5 ,NA, 1 ,NA ,NA ,1.5 ,1.5 ,3)
df<-data.frame(VAR,Ranking)
为此,即使我添加了唯一的标识符并进行传播
For which even if I add a unique identifier and spread
df$row <- 1:nrow(df)
df_wide<-spread(df, VAR, Ranking)
df_wide<-df_wide[,-1]
我不明白我的追求.
但是我需要的是:
我如何做到这一点?
推荐答案
您可以在R base中执行
You can do in R base:
spl <- split(df, df$VAR)
n <- max(sapply(spl, nrow))
do.call(cbind, lapply(spl, function(x) {
x <- x[!is.na(x$Ranking),'Ranking']
length(x) <- n
x}))
这篇关于长到宽没有唯一的密钥的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!