长到宽没有唯一的密钥

长到宽没有唯一的密钥

本文介绍了长到宽没有唯一的密钥的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个数据集:

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}))

这篇关于长到宽没有唯一的密钥的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-25 02:48