在R中匹配具有动态格式的字符串

时间:2017-08-01 13:20:00

标签: r

我想检查一列是否没有输入数据框的标题。 当我使用fread(filename)将缺少的标题更改为默认名称" V +列数"(例如:第一列的V1,V2等)时,会出现问题。我阅读了该函数的文档,似乎无法更改标题的默认值。 因此,考虑到这一点,我想将包含V + number的所有列作为缺少的标题。如果有人解释如何做这样的事情,将会非常有帮助:

if(string == (V1, V2, ... VN)){ do something } 比较如果一个字符串等于' V'加上整数。

2 个答案:

答案 0 :(得分:1)

这是怎么回事?我不知道你想要用缺少的列名做什么;如果您想用空格替换它们或记录它们的位置,请相应地调整打印语句,以制作一个向量,例如,i所有It's missing

x <- data.frame(A=1,B=2,V3=3,V4=4,C=5)    
z <- names(x)

for(i in 1:length(z)){
  if(z[i]==paste0("V", i)){
    print("It's missing")
  } else {
    print("Not missing")
  }
}

答案 1 :(得分:1)

你可以使用str_extract从stringr包中获取所有colums Vx值。

library(stringr)
str_extract(colnames(myDataFrame), "V\\d*")

示例:

dt <- data.frame("aaaa" = c(1:5), "V2" = c(6:10), "V3123" = c(11:15), "V455" = c(16:20))
str_extract(colnames(dt), "V\\d*")
  

“NA”“V2”“V3123”“V455”

然后,您可以使用de columns names

执行所需操作