Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从R中列标题中的字符串中获取值_R - Fatal编程技术网

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

从R中列标题中的字符串中获取值,r,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 显然,这只是一个示例,实际文件包含更多的数据,即包含大约

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

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例如,如果您拥有的所有数字都位于名称的末尾,而不像
h984mm19
,则您可以使用
gsub
删除除数字和标点符号以外的所有内容,并将其转换为
数字
向量,如下所示:

# just give all names except the first column
my_var <- as.numeric(gsub("[^0-9[:punct:]]", "", names(dat)[-1]))
# [1] 0.1 0.2
#只需给出除第一列以外的所有名称

我的爸爸是这样的吗
my_var@Arun你为什么不发布答案@西蒙诺101,在这些问题中,总是有一个“陷阱”。请看对我答案的评论。@Arun我感觉到了你的痛苦!:-)如果数字是0.1和0.2,我认为这行不通。如果数据框中有超过3列,该怎么办。你能提供一个更一般的答案吗?好吧,你的问题没有提到任何关于
0.1
。编辑您的帖子以反映可能性,然后我将进行编辑。@user1155751这就是为什么在您的问题中给出具体要求是一个好主意……您能在Matlab中分享您的通用解决方案吗?不能为“所有”字符串/regexp问题设计通用代码。设计regexp模式必须有“规则”。答案是+1,希望我能耐心地给出另一个规则