Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何使用带有要排序列名称的字符串向量对数据帧进行排序?_R_List_Loops_Dataframe - Fatal编程技术网

R 如何使用带有要排序列名称的字符串向量对数据帧进行排序?

R 如何使用带有要排序列名称的字符串向量对数据帧进行排序?,r,list,loops,dataframe,R,List,Loops,Dataframe,假设数据如下所示: df3 = data.frame(matrix(rnorm(20), nrow=10)) df3$ACCT_ID <- as.numeric(rownames(df3)) df3$X3 <- ifelse(df3$X2 < 1,"LOW","HIGH") df3 X1 X2 ACCT_ID X3 1 0.8533321 0.73676965 1 LOW 2 -0.2289266 -0.870

假设数据如下所示:

df3 = data.frame(matrix(rnorm(20), nrow=10))
df3$ACCT_ID <- as.numeric(rownames(df3))
df3$X3 <- ifelse(df3$X2 < 1,"LOW","HIGH")

df3
           X1          X2 ACCT_ID   X3
1   0.8533321  0.73676965       1  LOW
2  -0.2289266 -0.87010747       2  LOW
3  -0.7997897  0.49979417       3  LOW
4   0.5281416 -0.70161594       4  LOW
5  -0.6246283  0.81879826       5  LOW
6   0.9939673 -1.20910819       6  LOW
7  -0.8955201  0.42167923       7 HIGH
8   1.4404649  0.59220989       8  LOW
9  -0.8687570  0.09393659       9  LOW
10 -0.7030129 -0.95184303      10  LOW
df3=data.frame(矩阵(rnorm(20),nrow=10))

df3$ACCT_ID我找到了一个似乎效果很好的答案(尽管我需要知道IDS列表中列出了多少列,并且为了使它更具适应性,我最后把几个快速if语句放在了一起)


IDS我找到了一个似乎效果很好的答案(尽管我需要知道IDS列表中列出了多少列,并且为了使它更具适应性,我最后把几个快速if语句放在了一起)


IDS您可以使用
get

df3[with(df3, order(get(IDS))), ]

您不应该像在
ID\u OUT
中那样连接列名。相反,您可以将所需的列名放入向量中,然后应用
get

您可以使用
get

df3[with(df3, order(get(IDS))), ]
您不应该像在
ID\u OUT
中那样连接列名。相反,您可以将所需的列名放入向量中,然后应用
get

感谢@Marcello(用户:5579644)建议这不是一个重复的问题,需要自己独特的问题和答案。感谢@Marcello(用户:5579644)建议这不是一个重复的问题,需要自己独特的问题和答案。
IDS <- c("X1","ACCT_ID")
if (length(IDS) == 1){
  TEMP_X_DF <- df3[order(df3[,IDS[1]]), ]
}
else if (length(IDS) == 2){
  TEMP_X_DF <- df3[order(df3[,IDS[1]],df3[,IDS[2]]), ]
}
.
.
.
df3[with(df3, order(get(IDS))), ]