根据部分列表元素名称分配属性 table 名称的有效方法
Efficient way of assigning attribute table names based on a partial list element name
我有一个列表,其中路径名作为列表 l1
中的元素名称。
# File List
l1 <- list(2,3,4,5)
names(l1) <- c("C:/Users/2013_mean.csv",
"C:/Users/2013_median.csv",
"C:/Users/2015_mean.csv",
"C:/Users/2015_median.csv")
我想以更有效的方式将属性 table 分配给类似于以下内容的列表。我只想从 l1
中的元素中提取部分路径名,将它们分配给各自的组件。例如:
我想从 l1
中的“C:/Users/2013_mean.csv”中“抓取”名称“2013_mean”,并将其分配给属性 table 中的那个元素。有更有效的方法吗?
attributes(l1) <- data.frame(id = c("2013_mean", "2013_median", "2015_mean", "2015_median")
)
attributes(l1)
我们可以在list
的names
上使用basename
来提取子串
attributes(l1) <- data.frame(id = sub("\.csv", "", basename(names(l1))))
-输出
> l1
[[1]]
[1] 2
[[2]]
[1] 3
[[3]]
[1] 4
[[4]]
[1] 5
attr(,"id")
[1] "2013_mean" "2013_median" "2015_mean" "2015_median"
或者另一种选择是 basename
+ file_path_sans_ext
tools::file_path_sans_ext(basename(names(l1)))
[1] "2013_mean" "2013_median" "2015_mean" "2015_median"
我有一个列表,其中路径名作为列表 l1
中的元素名称。
# File List
l1 <- list(2,3,4,5)
names(l1) <- c("C:/Users/2013_mean.csv",
"C:/Users/2013_median.csv",
"C:/Users/2015_mean.csv",
"C:/Users/2015_median.csv")
我想以更有效的方式将属性 table 分配给类似于以下内容的列表。我只想从 l1
中的元素中提取部分路径名,将它们分配给各自的组件。例如:
我想从 l1
中的“C:/Users/2013_mean.csv”中“抓取”名称“2013_mean”,并将其分配给属性 table 中的那个元素。有更有效的方法吗?
attributes(l1) <- data.frame(id = c("2013_mean", "2013_median", "2015_mean", "2015_median")
)
attributes(l1)
我们可以在list
的names
上使用basename
来提取子串
attributes(l1) <- data.frame(id = sub("\.csv", "", basename(names(l1))))
-输出
> l1
[[1]]
[1] 2
[[2]]
[1] 3
[[3]]
[1] 4
[[4]]
[1] 5
attr(,"id")
[1] "2013_mean" "2013_median" "2015_mean" "2015_median"
或者另一种选择是 basename
+ file_path_sans_ext
tools::file_path_sans_ext(basename(names(l1)))
[1] "2013_mean" "2013_median" "2015_mean" "2015_median"