繁体   English   中英

R:识别数据框中的列名是否包含字符串

[英]R: To identify whether column names in a dataframe contains string

假设我有 2 个数据框:

df1:

Name  Data123   Data321   Age
A     123       321       20

df2:

Name   Age
B      20

我想检查哪个数据框的列名包含字符串“Data”。 如果是,则数据帧将作为一个整体传递到自定义函数中。 因此,在这种情况下,我希望只将 df1 传递到上述函数中。 请指教

我们可以使用带有grepl的函数grepl实现可重用性(来自base R ),用any包裹以返回单个 TRUE/FALSE(如果有一个带有子字符串“Data”的列名),这可以用于上述目的

f1 <- function(dat, pat) any(grepl(pat, names(dat)))
f1(df1, '^Data')
f1(df2, '^Data')

或者用startsWith

f1 <- function(dat, pat) any(startsWith(names(dat), pat))
f1(df1, 'Data')

您可以使用stringr包中的str_detect()

library(stringr)
#does any (column) name inside df1 contains "Data"?
any(str_detect(names(df1), "Data"))

数据:

df1 <- data.frame(Name = "A", Data123 = 123, Data321 = 321, Age = 20)
df2 <- data.frame(Name = "B", Age = 20)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM