0
我想将几个类似的变量转换为因子,但我希望一次完成,而不是单独完成。最重要的是,我希望使用来自名为'codes.csv'的外部.csv文件中的信息来实现这一点,其中我已经列出了与该变量有关的所有相关信息,例如, '水平'和'标签'。我的数据如下所示:使用来自.csv中的信息将多个变量转换为因子R
set.seed(1234)
my_data <- data.frame(citation_1 = sample(c(1:7), 10, replace = TRUE),
citation_2 = sample(c(1:7), 10, replace = TRUE),
citation_3 = sample(c(1:7), 10, replace = TRUE))
my_data
当然,我可以做以下的每个变量...
codes <- read.csv("codes.csv", header = FALSE)
my_data$citation_1 <- factor(my_data$citation_1,
levels = codes[, 1],
labels = codes[, 2])
但得是一个更有效的方法;在第二个“标签”;
citations <- c("citation_1", "citation_2", "citation_3")
my_data[citations] <- lapply(my_data[citations], factor,
levels = codes[, 1],
labels = codes[, 2])
我“codes.csv”文件如下所示(“水平”在这个模拟文件的第一列中列出:我试过下面的代码及其变体):
1 dismissed
2 acquitted by court
3 acquitted by jury
4 convicted/plea of guilty
5 convicted/plea of nolo contendere
6 convicted by court
7 convicted by jury
(我会附上上面的.csv文件,但我不认为我可以。)先谢谢您的帮助。
工作正常!非常感谢您的及时回复 - 您已经节省了我的时间毫不费力地反复输入相同的代码... – Banjaxed
考虑接受答案:) –
啊......我只是点击绿色箭头,如果这就是你的意思;我在这些部分中有点新手。再次感谢。 – Banjaxed