我无法将列表中的值标签分配给数值变量。我有一个list()
包含十一个变量的数据集(以 a 的形式)。前五个变量每个都有单独的值级别,后六个每个变量都使用相同的 1-5 等级。我为前五个变量中的每一个创建了带有值标签的列表,并为比例创建了一个。现在我想自动将这些列表中的标签分配给我的变量。
我已将我的 11 个变量放在一个列表中,以便能够使用mapply()
.
这是我当前状态的示例:
# Example variables:
a <- c(1,2,3,4) # individual variable a
b <- c(1,2,2,1) # individual variable b
c <- c(1,2,3,4,5) # variable c using the scale
d <- c(1,2,3,4,5) # variable d also using the scale
mydata <- list(a,b,c,d)
# Example value labels:
lab.a <- c("These", "are", "value", "labels")
lab.b <- c("some", "more")
lab.c <- c("And", "those", "for", "the", "scale")
labels.abc <- list(lab.a, lab.b, lab.c)
# Assigning labels in two parts
part.a <- mapply(function(x,y) factor(as.numeric(x), labels = y, exclude = NA), mydata[1:2], labels.abc[1:2])
part.b <- mapply(function(x,y) factor(as.numeric(x), labels = y, exclude = NA), mydata[3:4], labels.abc[3])
除了无法将这两个部分结合起来之外,我的主要问题是输出格式。mapply()
以矩阵的形式给出结果,我再次需要一个包含特定变量的列表。
所以,我的问题是:如何在自动化过程中分配值标签并再次获得变量列表,这些变量现在包含标签信息而不是数字?
我在这里很迷茫。我的方法mapply()
通常可行,还是我完全走错了路?
提前致谢!如果您需要更多信息,请发表评论。