从R中列标题中的字符串中获取值

时间:2013-03-15 11:57:37

标签: r

我有一个类似于以下内容的文本文件

DateTime               height0.1               height0.2
2009-01-01 00:00          1                     1
2009-01-02 00:00          2                     4
2009-01-03 00:00          10                    1

显然,这只是一个示例,实际文件包含更多数据,即包含大约100列,标题可以包含小数值。我可以使用以下内容将文件读入R:

dat <- read.table(file,header = TRUE, sep = "\t")

其中file是表的路径。这将在工作空间中创建一个名为dat的data.frame。我现在想从这个data.frame生成一个名为'vars'的变量,它是一个由列标题中的数字组成的数组(除了DateTime是第一列)。

例如,这里我会有vars = 1,2

基本上我想获取标题字符串中的数字,然后将其存储在单独的变量中。我意识到这对某些人来说非常容易,但任何建议都会很棒。

1 个答案:

答案 0 :(得分:2)

如果您所有的号码都在名称的末尾,例如,不像h984mm19,那么,您可以使用gsub删除除数字和标点符号以外的所有内容并将其转换为numeric向量如下:

# just give all names except the first column
my_var <- as.numeric(gsub("[^0-9[:punct:]]", "", names(dat)[-1]))
# [1] 0.1 0.2