gpt4 book ai didi

R 粘贴具有特定前缀的所有变量

转载 作者:行者123 更新时间:2023-12-01 16:47:46 24 4
gpt4 key购买 nike

我想粘贴一组具有给定前缀的变量的内容。例如,给定以下数据:

data <- data.frame(var_1=c(1,2,3,4,5),
var_2=c(1,2,3,4,5),
var_3=c(1,2,3,4,5))

我想复制以下行为,而不单独列出每个变量名称,而是粘贴带有前缀“var_”的所有变量:

my_strings <- paste(toy_data$var_1,
toy_data$var_2,
toy_data$var_3)

my_strings
[1] "1 1 1" "2 2 2" "3 3 3" "4 4 4" "5 5 5"

最佳答案

我们可以使用 do.call 进行逐行粘贴

do.call(paste, data[startsWith(names(data), 'var')])
#[1] "1 1 1" "2 2 2" "3 3 3" "4 4 4" "5 5 5"

或者使用 grep 代替 startsWith

do.call(paste, data[grep("^var_\\d+$", names(data))])

或者使用Reduce

Reduce(paste, data[startsWith(names(data), 'var')])
#[1] "1 1 1" "2 2 2" "3 3 3" "4 4 4" "5 5 5"

另一个选项是apply,但速度会很慢

apply(data[startsWith(names(data), 'var')], 1, paste, collapse= ' ')
#[1] "1 1 1" "2 2 2" "3 3 3" "4 4 4" "5 5 5"

关于R 粘贴具有特定前缀的所有变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60286059/

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