从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,希望我能耐心地给出另一个规则