Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何引用dplyr中的其他列名_R_Dplyr_Mutate_Columnname_Across - Fatal编程技术网

如何引用dplyr中的其他列名

如何引用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填充 更新:我在“每天”列中缺少一些值,

希望是一个简单的问题。我想使用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填充

更新:我在“每天”列中缺少一些值,因此我编辑了上面的代码。当输入中有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