R 将值从一列应用到新列

R 将值从一列应用到新列,r,data-structures,R,Data Structures,我有一个数据框,有几个列,每个列对应不同刺激的等级。我还列出了每个参与者看到每个项目的顺序。每行为一名参与者 x <- data.frame("post1" = c(1, NA, 2, 3, NA), #stimuli ratings columns "post2" = c(3, 1, NA, NA, 4), "post3" = c(NA, 3, 1, 4, NA),

我有一个数据框,有几个列,每个列对应不同刺激的等级。我还列出了每个参与者看到每个项目的顺序。每行为一名参与者

x <- data.frame("post1" = c(1, NA, 2, 3, NA), #stimuli ratings columns
                "post2" = c(3, 1, NA, NA, 4),
                "post3" = c(NA, 3, 1, 4, NA),
                "firstpost" = c("post3", "post1", "post3", "post6", 
                 "post4"), #stimuli order columns
                "secondpost" = c("post2", "post3", "post1", "post4", 
                 "post1"))

x这里我提供一个解决方案。
我使用的示例数据
x
与您的略有不同。因为为了一致性,示例数据不应包括
post6
post4

库(data.table)
x邮局1邮局2邮局3第一邮局第二邮局
#>1:1 3 2 post 3 post 2
#>2:NA 1 3 post1 post3
#>3:2 NA 1后3后2
#>4:3 2 4 post2 post3
#>5:45 post1 post1
x[,`:=`(firstpostrate=get(firstpost),
secondpostrate=获取(secondpost)),
by=post1]
x
#>post1 post2 post3 firstpost secondpost firstpostrate secondpostrate secondpostrate
#>1:1232 post23 post23
#>2:NA 13 post1 post3 NA 3
#>3:2不适用1后3后1不适用
#>4:3 2 4 post2 post3 2 4
#>5:45 post1 post1 4

由(v2.0.0)于2021-04-29创建。

您的示例数据无效,它不是有效的R对象。请更新它,使其能够正常工作。很抱歉,已更新示例数据代码!
firstpostrating <- c(4, 1, 2, 3, 2)
secondpostrating <- c(1, 3, 3, 2, 1)