繁体   English   中英

如何从 R 列表中的 dataframe 名称中提取数字?

[英]How can I extract numbers from dataframe names in a list in R?

我有一个名为 list.data 的列表,其中包含 600 多个数据框。 每个数据框都有一个唯一的名称,例如 4dMU6_20080605tp.txt,名称中是一个日期“20080605”,我想提取并添加到每个 dataframe 的新列中。

我已经在每个 dataframe 中创建了新列,列标题为“日期”,但现在需要从多个 dataframe 名称中提取数字 - 知道我该怎么做吗?

我试过 sapply 但大概它不起作用,因为它正在搜索与 dataframe 名称相反的数据帧。

 sapply(list.data, function(x){as.numeric(x[8])})

任何帮助将不胜感激!

使用lapply ,我们可以为列表中的每个数据框添加新的Date列,使用gsub从每个列表元素的名称中获取日期。

lst_names <- names(list.data)
list.data <- lapply(lst_names, function(x) {
    list.data[[x]]$Date <- gsub("^.*_|[A-Za-z]*\\.\\w+$", "", x)
    return(list.data[[x]])
})
names(list.data) <- lst_names

如果您只想从列表中的名称中提取数字,则可以使用此str_extract(names(list.data), "\\-*\\d+\\.*\\d*") 请注意, names(list)返回数据框列名,而不是数据框的名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM