R: Adding NAs into Data Frame

后端 未结 5 906
刺人心
刺人心 2020-12-11 18:04

I have a data frame like so:

Name   Position   Value
a         1        0.2
a         3        0.4
a         4        0.3
b         1        0.5
b         2          


        
5条回答
  •  心在旅途
    2020-12-11 18:19

    You can use the reshape2 package:

    # make sample data frame
    df <- read.table(text = "Name   Position   Value
    a         1        0.2
    a         3        0.4
    a         4        0.3
    b         1        0.5
    b         2        0.4
    b         5        0.3
    c         2        0.3
    c         3        0.4
    c         5        0.1
    d         1        0.2
    d         2        0.4
    d         3        0.5", header = TRUE, stringsAsFactors = FALSE)
    
    library('reshape2')
    df2 <- dcast(df, Name ~ Position)
    df3 <- melt(df2, value.name = "Value", variable.name = "Position")
    df3[order(df3$Name), ]
    #    Name Position Value
    # 1     a        1   0.2
    # 5     a        2    NA
    # 9     a        3   0.4
    # 13    a        4   0.3
    # 17    a        5    NA
    # 2     b        1   0.5
    # 6     b        2   0.4
    # 10    b        3    NA
    # 14    b        4    NA
    # 18    b        5   0.3
    # 3     c        1    NA
    # 7     c        2   0.3
    # 11    c        3   0.4
    # 15    c        4    NA
    # 19    c        5   0.1
    # 4     d        1   0.2
    # 8     d        2   0.4
    # 12    d        3   0.5
    # 16    d        4    NA
    # 20    d        5    NA
    

提交回复
热议问题