【发布时间】:2018-06-19 19:21:19
【问题描述】:
我正在尝试根据查找值将值分配给不同的列,分别为每一行。我在 R 中工作。这是一个最小的工作示例:
#Item scores
item1 <- c(NA, 1, NA, 4)
item2 <- c(NA, 2, NA, 3)
item3 <- c(NA, 3, NA, NA)
item57 <- c(NA, 4, 4, 1)
mydata <- data.frame(item1, item2, item3, item57)
#Lookup values based on item score
lookup <- data.frame(score = 1:4, value=c(6, 7, 8, 10))
我有许多参与者(即行),对许多项目(即列)中的每一个都进行了评分评估。我想在我的数据框中为与项目分数相关的值创建变量(基于查找表)。这是我想要的输出:
#Desired output (adding value that is tied to item score to the original data)
desiredOutput <- cbind(mydata,
value1 = c(NA, 6, NA, 10),
value2 = c(NA, 7, NA, 8),
value3 = c(NA, 8, NA, NA),
value57 = c(NA, 10, 10, 6))
我有一个相当大的数据集,如果可能的话,我希望远离循环。此外,如果处理速度更快,我们可以跳过所有 NA 的行。
【问题讨论】:
-
签出
?dplyr::left_join
标签: r loops apply lookup lapply