gpt4 book ai didi

r - 通过列名称中的参数使用 dplyr 选择

转载 作者:行者123 更新时间:2023-12-02 15:19:45 24 4
gpt4 key购买 nike

我的数据表有很多列,如下所示:

sd1_scale1 sd1_scale2 sd1_scale3 ... sd2_scale1 sd2_scale2 ... so on

我使用 dplyr 操作这些数据并以这种方式使用 select:

  select(code_group, sd1_scale1:sd1_scale13)

我想编写一个函数,它接受数字(sd 数字)并以此选择列,如下所示:

 makeData <- function(sdNumber) {

return select(code_group, sd{sdNumber}_scale1:sd{sdNumber}_scale13)

}

可以用 dplyr 来做吗?我无法传递到列的选择索引,所以我不知道该怎么做。提前致谢!

最佳答案

您可以按照 Gregor 的建议使用 select_,但并非必须如此。

library(dplyr)

x <- read.csv(text = "sd1_scale1,sd1_scale2,sd1_scale3,sd2_scale1,sd2_scale2,sd2_scale3
1,2,3,4", header = TRUE)


makeData1 <- function(x, sdNumber) {
# Using `one_of` as explained in ?select
select(x, one_of(paste0("sd", sdNumber, "_scale", 1:2)))
}

makeData2 <- function(x, sdNumber) {
# Same effect using nonstandard evaluation, see vignette("nse")
select_(x, .dots = paste0("sd", sdNumber, "_scale", 1:2))
}

x %>% makeData1(2)
x %>% makeData2(2) # same result

我从 this gist 得到这个

关于r - 通过列名称中的参数使用 dplyr 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27805738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com