在dplyr中使用列号 库(tidyverse,warn.conflications=TRUE) #>警告:程序包“tidyverse”是在R版本3.6.3下构建的 #>警告:包“ggplot2”是在R版本3.6.3下生成的 #>警告:程序包“tidyr”是在R版本3.6.3下构建的 #>警告:包“purrr”是在R版本3.6.3下生成的 #>警告:程序包“dplyr”是在R版本3.6.3下生成的 #>警告:程序包“stringr”是在R版本3.6.3下生成的 #>警告:“forcats”软件包是在R版本3.6.3下构建的 df%突变(跨越(c(x,a),~x/y)) #>#tibble:10 x 4 #>x y z a #> #> 1 0.0909 11 1 0.0885 #> 2 0.167 12 1 0.0464 #> 3 0.231 13 1 0.0586 #> 4 0.286 14 1 0.0590 #> 5 0.333 15 1 0.0111 #> 6 0.375 16 2 0.0595 #> 7 0.412 17 2 0.0320 #> 8 0.444 18 2 0.0311 #> 9 0.474 19 2 0.0386 #> 10 0.5 20 2 0.0236
由(v0.3.0)于2020-08-01创建在dplyr中使用列号 库(tidyverse,warn.conflications=TRUE) #>警告:程序包“tidyverse”是在R版本3.6.3下构建的 #>警告:包“ggplot2”是在R版本3.6.3下生成的 #>警告:程序包“tidyr”是在R版本3.6.3下构建的 #>警告:包“purrr”是在R版本3.6.3下生成的 #>警告:程序包“dplyr”是在R版本3.6.3下生成的 #>警告:程序包“stringr”是在R版本3.6.3下生成的 #>警告:“forcats”软件包是在R版本3.6.3下构建的 df%突变(跨越(c(x,a),~x/y)) #>#tibble:10 x 4 #>x y z a #> #> 1 0.0909 11 1 0.0885 #> 2 0.167 12 1 0.0464 #> 3 0.231 13 1 0.0586 #> 4 0.286 14 1 0.0590 #> 5 0.333 15 1 0.0111 #> 6 0.375 16 2 0.0595 #> 7 0.412 17 2 0.0320 #> 8 0.444 18 2 0.0311 #> 9 0.474 19 2 0.0386 #> 10 0.5 20 2 0.0236,r,dplyr,across,R,Dplyr,Across,由(v0.3.0)于2020-08-01创建 从上面的示例中,我想将列x和a按行除以y。建议的方法在此页上,但我必须在函数中使用列名作为参数。有没有办法,我可以用列号代替他们的名字?如果我能对Cross的所有实例使用该技巧,我将不胜感激。我们可以用列索引替换未引用的名称 library(dplyr) df %>% mutate(across(c(1, 4), ~ .x / y)) # A tibble: 10 x 4 # x y z
从上面的示例中,我想将列x和a按行除以y。建议的方法在此页上,但我必须在函数中使用列名作为参数。有没有办法,我可以用列号代替他们的名字?如果我能对Cross的所有实例使用该技巧,我将不胜感激。我们可以用列索引替换未引用的名称
library(dplyr)
df %>%
mutate(across(c(1, 4), ~ .x / y))
# A tibble: 10 x 4
# x y z a
# <dbl> <int> <int> <dbl>
# 1 0.0909 11 1 0.0470
# 2 0.167 12 1 0.000267
# 3 0.231 13 1 0.0453
# 4 0.286 14 1 0.0327
# 5 0.333 15 1 0.0382
# 6 0.375 16 2 0.0453
# 7 0.412 17 2 0.0105
# 8 0.444 18 2 0.0329
# 9 0.474 19 2 0.0396
#10 0.5 20 2 0.0249
库(dplyr)
df%>%
突变(跨越(c(1,4),~x/y))
#一个tibble:10x4
#x y z a
#
# 1 0.0909 11 1 0.0470
# 2 0.167 12 1 0.000267
# 3 0.231 13 1 0.0453
# 4 0.286 14 1 0.0327
# 5 0.333 15 1 0.0382
# 6 0.375 16 2 0.0453
# 7 0.412 17 2 0.0105
# 8 0.444 18 2 0.0329
# 9 0.474 19 2 0.0396
#10 0.5 20 2 0.0249
我们可以使用列名
df2 <- df %>%
rowwise() %>%
mutate(across(c(x,a), ~ .x/y))
df2
# A tibble: 10 x 4
# Rowwise:
# x y z a
# <dbl> <int> <int> <dbl>
# 1 0.0909 11 1 0.0889
# 2 0.167 12 1 0.0751
# 3 0.231 13 1 0.0634
# 4 0.286 14 1 0.0626
# 5 0.333 15 1 0.0122
# 6 0.375 16 2 0.0147
# 7 0.412 17 2 0.00868
# 8 0.444 18 2 0.0000776
# 9 0.474 19 2 0.0349
# 10 0.5 20 2 0.00526
df2%
行()
突变(跨越(c(x,a),~x/y))
df2
#一个tibble:10x4
#顺时针:
#x y z a
#
# 1 0.0909 11 1 0.0889
# 2 0.167 12 1 0.0751
# 3 0.231 13 1 0.0634
# 4 0.286 14 1 0.0626
# 5 0.333 15 1 0.0122
# 6 0.375 16 2 0.0147
# 7 0.412 17 2 0.00868
# 8 0.444 18 2 0.0000776
# 9 0.474 19 2 0.0349
# 10 0.5 20 2 0.00526