R语言中如何按指定字符向量顺序排列数据框列表
解决列表按指定字符向量顺序重新排列的问题
你可以直接利用R的名称索引功能实现需求,代码非常简洁:
# 按securities的顺序重新排列列表d d_reordered <- d[securities]
原理说明
因为securities中的每一个元素都是列表d的元素名称,用这个字符向量作为索引时,R会严格按照securities的顺序,依次提取d中对应名称的元素,最终得到的d_reordered列表,其元素顺序就和securities完全一致。
验证示例
你可以通过以下代码直观验证效果:
# 创建示例数据框 df1 <- data.frame(x = 1:3) df2 <- data.frame(y = 4:6) df3 <- data.frame(z = 7:9) df4 <- data.frame(a = 10:12) df5 <- data.frame(b = 13:15) # 定义securities和列表d securities <- c("ds", "as", "sad", "dsf", "sdf") d <- list("as" = df1 , "sad" = df2 , "sdf" = df3 , "dsf" = df4 , "ds" = df5) # 执行重新排列 d_reordered <- d[securities] # 查看排列后的元素名称 names(d_reordered) # 输出结果: "ds" "as" "sad" "dsf" "sdf"
内容的提问来源于stack exchange,提问作者Siddharth Somani
相关产品推荐
相关产品推荐

