我正在尝试使用 R 转换我的数据框格式。我想要唯一的公司名称,因为它对每个公司都有多个观察结果。我的数据看起来像

company name    Values  Year 
    A              1    2010 
    A              2    2011 
    B              4    2010 
    B              6    2012 
    C              8    2011 

我想要下面的格式

 company name   first_value First_year  second_values second_year 
     A              1          2010          2           2011 
     B              4          2010          6           2012   
     C              8          2011          NA           NA 

我试过这段代码,但它没有给出我期望的结果

library(plyr) 
extract.hashtags <- function(x) { 
x <- subset(x,select=c(-Company.Name)) 
mat <- as.matrix(x) 
dim(mat) <- c(1,length(mat)) 
as.data.frame(mat) 
} 
 
df1 = ddply(data, .(Company.Name), extract.hashtags ) 

请您参考如下方法:

添加“时间”变量后,您可以在 base R 中使用 reshape,这可以使用我的“splitstackshape”包中的 getanID 完成:

reshape(getanID(mydf, "companyname"), idvar = "companyname",  
          timevar = ".id", direction = "wide") 
#    companyname Values.1 Year.1 Values.2 Year.2 
# 1:           A        1   2010        2   2011 
# 2:           B        4   2010        6   2012 
# 3:           C        8   2011       NA     NA 


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!