r - 在 R 中使用子集时如何忽略大小写

标签 r subset

在R中使用子集函数时如何忽略大小写?

eos91corr.data <- subset(test.data,select=c(c(X,Y,Z,W,T)))

我想选择名称为 x、y、z、w、t 的列。我该怎么办?

谢谢

最佳答案

如果没有 subset() 也能活下去函数,tolower()功能可能工作:

dat <- data.frame(XY = 1:5, x = 1:5, mm = 1:5,
    y = 1:5, z = 1:5, w = 1:5, t = 1:5, r = 1:5)
dat[,tolower(names(dat)) %in% c("xy","x")]

但是,这将返回 data.frame列按照它们在原始数据集中的顺序dat : 两个都
dat[,tolower(names(dat)) %in% c("xy","x")]


dat[,tolower(names(dat)) %in% c("x","xy")]

将产生相同的结果,尽管目标名称的顺序已颠倒。

如果希望结果中的列按照目标向量的顺序排列,则需要稍微花哨一些。以下两个命令都返回 data.frame列按目标向量的顺序排列(即,结果将不同,列切换):
dat[,sapply(c("x","xy"),FUN=function(foo)which(foo==tolower(names(dat))))]
dat[,sapply(c("xy","x"),FUN=function(foo)which(foo==tolower(names(dat))))]

关于r - 在 R 中使用子集时如何忽略大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13368695/

相关文章:

r - 根据计算在数据框中插入行

r - 尝试使用 rvest 循环命令以从多个页面抓取表

C++ 子集总和 2^n/递归错误/澄清

r - data.table R 中的子集 ID 和日期

R 函数检查一个向量是否是另一个向量的子集

r - 自动保存多页格子图

r - 使用 bslib 的可折叠侧边栏无需额外的 JS?

c++ - 使用 Rcpp 在 R 中使用矩阵是否有限制?

r - 在 R 中使用多个匹配条件对数据框进行子集化

algorithm - 找到总和为 x 的所有子集 - 使用初始代码