代码之家  ›  专栏  ›  技术社区  ›  LLL

无法通过匹配另一列中给定的列名对数据框架列重新排序

  •  0
  • LLL  · 技术社区  · 7 年前

    我正在尝试使用另一个数据帧中变量的内容对数据帧中的变量重新排序,但它不起作用,我不知道为什么。

    任何帮助都将不胜感激!

    # Starting point 
    df_main <- data.frame(coat=c(1:5),hanger=c(1:5),book=c(1:5),
                          bottle=c(1:5),wall=c(1:5))
    df_order <- data.frame(order_var=c("wall","book","hanger","coat","bottle"),
                           number_var=c(1:5))
    
    # Goal
    df_goal <-  data.frame(wall=c(1:5),book=c(1:5),hanger=c(1:5),
                           coat=c(1:5),bottle=c(1:5))
    
    # Attempt
    df_attempt <- df_main[df_order$order_var]
    
    2 回复  |  直到 7 年前
        1
  •  0
  •   Zheyuan Li    7 年前

    在你 df_order stringsAsFactors = FALSE data.frame 打电话。

        2
  •  0
  •   Kerry Jackson    7 年前

    问题是,您将顺序作为一个因素,如果您将其更改为一个字符,它将起作用:

    df_goal <- df_main[as.character(df_order$order_var)]
    
    推荐文章