如何解决如何创建多个新变量并将其添加到数据集中,在相同条件下对新变量进行评估
假设我有以下数据框。我想做的是创建带有前缀~new.
的新变量,例如new.factor1,new.factor2,
等。此外,这些新变量是根据相同条件从旧变量创建的。假设常见条件是new.factor变量将用44和55替换4和5,其余部分与以前相同。我想以不必将新名称输入每个变量的代码的方式来实现。这是我坚持的部分。我发现的解决方案需要提供变量名,我希望解决方案代码从现有的变量名中读取。
factor1 <- c(1,1,2,3,4,5,6,7,8,9,10,10)
factor2 <- c(1,11,12,13,14,15,16,17,18,19,20)
factor3 <- rnorm(20)
factor4 <- c(1:20)
dataset <- data.frame(factor1,factor2,factor3,factor4)
解决方法
我认为这可以帮助您
library(tidyverse)
#Data
factor1 <- c(1,1,2,3,4,5,6,7,8,9,10,10)
factor2 <- c(1,11,12,13,14,15,16,17,18,19,20)
factor3 <- rnorm(20)
factor4 <- c(1:20)
dataset <- data.frame(factor1,factor2,factor3,factor4)
#Mutate
dataset %>%
mutate(across(c(factor1:factor4),.fns = list(new = ~ ifelse(.==4,44,ifelse(.==5,55,.))) ))
输出:
factor1 factor2 factor3 factor4 factor1_new factor2_new factor3_new factor4_new
1 1 1 0.95562987 1 1 1 0.95562987 1
2 1 2 -1.69133138 2 1 2 -1.69133138 2
3 2 3 0.34527095 3 2 3 0.34527095 3
4 2 4 -0.38068329 4 2 44 -0.38068329 44
5 3 5 -0.88357788 5 3 55 -0.88357788 55
6 3 6 1.09936795 6 3 6 1.09936795 6
7 4 7 -1.44000399 7 44 7 -1.44000399 7
8 4 8 -1.44619802 8 44 8 -1.44619802 8
9 5 9 -0.37914030 9 55 9 -0.37914030 9
10 5 10 -0.38136916 10 55 10 -0.38136916 10
11 6 11 0.05036574 11 6 11 0.05036574 11
12 6 12 -0.61043789 12 6 12 -0.61043789 12
13 7 13 -0.21648782 13 7 13 -0.21648782 13
14 7 14 -0.35230171 14 7 14 -0.35230171 14
15 8 15 0.23007485 15 8 15 0.23007485 15
16 8 16 0.17146377 16 8 16 0.17146377 16
17 9 17 0.77488658 17 9 17 0.77488658 17
18 9 18 0.67676859 18 9 18 0.67676859 18
19 10 19 1.22292180 19 10 19 1.22292180 19
20 10 20 1.07251831 20 10 20 1.07251831 20
根据您的问题,您正在尝试创建替换某些值的新变量。先前的代码可以解决这个问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。