У меня трудности с сортировкой значений строк по конкретному столбцу.
Значения имеют разный порядок, например,
METHOD VAL1 VAL2 VAL3
1-A 10 2 15
10-B 11 5 15
11-c 23 45 65
2-F 4 65 67
3-T 4 56 11
и мне нужно вот так,
METHOD VAL1 VAL2 VAL3
1-A 10 2 15
2-F 4 65 67
3-T 4 56 11
10-B 11 5 15
11-c 23 45 65
Порядок сортировки основан на столбце METHOD
. Я пытался это устроить разными способами, но безуспешно.
Я решил эту проблему, но есть другая проблема в том же коде. Индивидуально следующий код работает, но при применении к функции - создает проблему.
a1 <- a1[order(as.numeric(gsub("-.*", "", a1$varname))),]
Моя функция выглядит следующим образом,
t1<- doTable1(AE_subset$Disp_code,AE_subset$FY,"DisposalMethod",thresh = 0.02,testvar = AE_subset$Attendance,fun="sum")
doTable1<- function(var1,var2,varname,testvar=NULL,fun=NULL,inc=TRUE,thresh=0.02) {
if (is.null(fun)) {
a1<- as.data.frame.matrix(table(var1,var2))
} else {
a1<- as.data.frame.matrix(tapply(testvar,list(var1,var2),FUN=fun,na.rm=TRUE))
}
a1<- rownames_to_column(a1,var=varname)
a1$FY3PR<- a1$FY3*proRata
if (!is.null(fun))
if (fun=="mean")
a1$FY3PR<- a1$FY3
a1 <- a1[order(as.numeric(gsub("-.*", "", a1$varname))),] # dataframe is not updating here
a1 <- a1 %>% replace(., is.na(.), 0)
a1 <- rbind(a1,c("Total",as.numeric(colSums(a1[,2:4]))))
return(a1)
}
Simple возвращает фрейм NULL.
Кто-нибудь может определить, почему эта функция не работает, когда дело доходит до команды order ()?