r - R:将NA添加到数据帧

标签 r dataframe na

我有一个这样的数据框:

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

我想使每个“名称”的位置始终从1到5,然后将NA填充为“值”,如下所示:
Name   Position   Value
a         1        0.2
a         2        NA
a         3        0.4
a         4        0.3
a         5        NA
b         1        0.5
b         2        0.4
b         3        NA
b         4        NA
b         5        0.3
c         1        NA
c         2        0.3
c         3        0.4
c         4        NA
c         5        0.1
d         1        0.2
d         2        0.4
d         3        0.5
d         4        NA
d         5        NA

有没有一种方法可以在不创建前两列的虚拟数据帧,然后通过合并进行某种外部联接的情况下做到这一点?

谢谢。

最佳答案

您可以使用reshape2包:

# 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

关于r - R:将NA添加到数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26591748/

相关文章:

python - 如果它符合 python 中的条件,则查找并比较组中的最后一行和之前的行

python - Pandas - 从正态分布中选择值来填充缺失值

R根据NA值分割数据帧

r - 如何在 R 中按组对 NA 行求和

r - 如何使用函数参数而不在函数体中提及它?

r - 如何在R中的公式中选择公式的一部分?

python - 两个数据帧之间的逐元素乘法

r - factor() 中的未指定水平

R Shiny : How to update an input object before a reactive statement gets executed

r - 生成范围 0 和 1 内的正态分布数据