Предположим, у меня есть этот фрейм данных:
df <- data.frame(A = letters[1:5],
B = letters[6:10],
stringsAsFactors = FALSE)
A B
1 a f
2 b g
3 c h
4 d i
5 e j
Где я ищу этот вывод:
A B
1 e j
2 d i
3 c h
4 b g
5 a f
С этой функцией:
f_Order <- function(df){
df$Order <- as.integer(row.names(df))
df <- arrange(df, desc(Order))[,c("A","B")]
}
Хотя вышеприведенная функция не работает, код внутри функции работает отлично:
df$Order <- as.integer(row.names(df))
df <- arrange(df, desc(Order))[,c("A","B")]
> x
A B
1 e j
2 d i
3 c h
4 b g
5 a f
Почему?Как заставить функцию работать?
РЕДАКТИРОВАТЬ:
Чтобы уточнить, постановка задачи: не , чтобы изменить порядок df,но заставить функцию f_Order
работать.Код делает то, что я хочу, но не то, что я хочу внутри этой функции.Мне нужно знать, почему и как я могу заставить функцию работать.
EDIT2:
Это именно тот код, который я запускаю, и до сих пор не 'не работает ни одно из решений.
x <- data.frame(A = letters[1:5],
B = letters[6:10],
stringsAsFactors = FALSE)
f_Order <- function(df){
df$Order <- as.integer(row.names(df))
df <- arrange(df, desc(Order))
return(df)
}
f_Order(x)