-4

我有一个如下所示的文本文件

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")

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

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

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

4

1 回答 1

2

如果您的所有数字都在名称的末尾,例如,not like 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
于 2013-03-15T12:03:47.710 回答