r - R粘贴具有特定前缀的所有变量
问题描述
我想粘贴一组具有给定前缀的变量的内容。例如,给定以下数据:
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
for row wise paste来做到这一点
do.call(paste, data[startsWith(names(data), 'var')])
#[1] "1 1 1" "2 2 2" "3 3 3" "4 4 4" "5 5 5"
或代替startsWith
, 使用grep
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"
推荐阅读
- javascript - 使日期字段仅显示过去日期(小于当前日期)的方法
- python - 实现算法 Birch 时出错
- css - 当我在 Material-UI 中悬停目标元素时如何使下拉菜单保持不变
- r - R simmer:选择服务器的自定义逻辑
- android - ADB调试不断断开
- vue.js - Vuejs2.6 - 图片未加载
- javascript - 为什么在 Promise.reject() 上使用 catch 会将其更改为已履行的承诺?
- google-chrome - 添加 COEP 标头后,Recaptcha V2 无法正常工作(跨源隔离)
- html - 有没有办法在 matlab uihtml 组件中获取文件?
- reactjs - 如何在选择选项中显示数据库中的数据?