如何引用dplyr中的其他列名
希望是一个简单的问题。我想使用dplyr mutate-over,并引用另一个用于所有mutate函数的静态列如何引用dplyr中的其他列名,r,dplyr,mutate,columnname,across,R,Dplyr,Mutate,Columnname,Across,希望是一个简单的问题。我想使用dplyr mutate-over,并引用另一个用于所有mutate函数的静态列 df <- data.frame(baseline = c(1,2,3), day1 = c(NA,2,2), day2 = c(2,3,4), day3= c(5,4,6)) 给出了错误 警告信息: 格式为.data.frame(如果(省略)x[seq_len(n0),drop=FALSE]否则x,: 损坏的数据帧:列将被截断或用NAs填充 更新:我在“每天”列中缺少一些值,
df <- data.frame(baseline = c(1,2,3), day1 = c(NA,2,2), day2 = c(2,3,4), day3= c(5,4,6))
给出了错误
警告信息:
格式为.data.frame(如果(省略)x[seq_len(n0),drop=FALSE]否则x,:
损坏的数据帧:列将被截断或用NAs填充
更新:我在“每天”列中缺少一些值,因此我编辑了上面的代码。当输入中有NA时,如何在输出中加入给予NAs,而不是失败?尝试以下操作:
library(dplyr)
#Code
df2 <- df %>% mutate(across(day1:day3,.fns = list(fc = ~ ./baseline)))
或者保持相同的变量:
#Code 2
df <- df %>% mutate(across(day1:day3,~ ./baseline))
添加新数据后,您将获得以下信息:
#Code 3
df2 <- df %>% mutate(across(day1:day3,.fns = list(fc = ~ ./baseline)))
我想在数据框中添加3个新的fc列,并使用每天的默认名称(我想是dayx_fc)或者替换原始列。任何一种方法都适用于我。这非常适合我的reprex。现在我意识到我的下一个问题是我的“day”列中缺少一些值,因此我会出错。如果缺少day值,您是否能够帮助编辑./baseline函数以提供NAs?我将更新该问题。@user42485ode>NA它的工作原理是,您将在比率中获得NA。我已使用您共享的新数据添加了输出!获得了!我认为我的值实际上丢失了,而不是NA。但我将替换为NA,然后应该可以工作。谢谢!
#Code 2
df <- df %>% mutate(across(day1:day3,~ ./baseline))
baseline day1 day2 day3
1 1 2.0000000 2.000000 5
2 2 1.0000000 1.500000 2
3 3 0.6666667 1.333333 2
#Code 3
df2 <- df %>% mutate(across(day1:day3,.fns = list(fc = ~ ./baseline)))
baseline day1 day2 day3 day1_fc day2_fc day3_fc
1 1 NA 2 5 NA 2.000000 5
2 2 2 3 4 1.0000000 1.500000 2
3 3 2 4 6 0.6666667 1.333333 2