r - 带有 cbind 和只有一列的自动列前缀

标签 r

我在使用 cbind 向数据框中添加列的脚本时遇到了一些问题。我通过正则表达式选择这些列,我喜欢 cbind 在添加多于一列时自动提供前缀。如果您只附加一列,这将不起作用......即使我将此列转换为数据框......

有没有办法绕过这种行为?

在我的示例中,它适用于以 a 开头的列,但不适用于 b1 列。

df <- data.frame(a1=c(1,2,3),a2=c(3,4,5),b1=c(6,7,8))

cbind(df, log=log(df[grep('^a', names(df))]))

cbind(df, log=log(df[grep('^b', names(df))]))

cbind(df, log=as.data.frame(log(df[grep('^b', names(df))])))

最佳答案

关于什么

cbw <- c("a","b") # columns beginning with
cbw_pattern <- paste0("^",cbw, collapse = "|")
cbind(df, log=log(df[grep(cbw_pattern, names(df))]))

这样您就可以一次选择两种模式。 (所有三列)。
仅当仅选择一列时,列名将不适合。

关于r - 带有 cbind 和只有一列的自动列前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28578988/

相关文章:

r - 如何将具有二元结果比率的数据集转换为适合 R 中逻辑回归的数据集

json - R data.frame 到带有子节点/分层结构的 JSON

替换单元格值,匹配列表元素并切换对

R - 替换正则表达式中的第 1 组匹配但不是完全匹配

r - 导入 CSV 时选择特定行

R 两个 SummarizedExperiment 对象的比较

R/Index 下三角向量(按成对索引)

r - 按组查找特定日期后特定值运行的第一行

r - dplyr 打印到控制台的偏移量

r - r 中三参数 Weibull 分布的最大似然估计