我有一個大數據框(x)與數字數據;前四行是這樣的:將數據框中的數值範圍轉換爲R中的字符/因子?
A B C D E F G H I J K L M N O P Q R S
1 -10 0 0 0 20 10 30 0 60 15 -10 -10 10 60 -10 60 0 60 0
2 0 0 0 0 0 0 0 0 60 15 -10 -10 10 60 -10 60 15 60 60
3 0 0 0 0 0 0 0 0 60 15 -10 -10 10 60 -10 60 0 60 0
4 10 20 30 40 0 10 0 0 60 15 -10 -10 10 60 -10 0 100 200 300
我想替換字符以下一些規則的值: S:0-9 ,P:10-14 L:15-29 我:30- 59 R:> = 60
我想:
x[x < 10] <- "S"
x[x > 9 & x < 15] <- "P"
x[x > 14 & x < 30] <- "L"
x[x > 29 & x < 60] <- "I"
x[x > 60] <- "R"
而且我得到這個:
A B C D E F G H I J K L M N O P Q R S
1 R R R R R 10 R R 60 R R R R 60 R 60 R 60 R
2 R R R R R R R R 60 R R R R 60 R 60 R 60 60
3 R R R R R R R R 60 R R R R 60 R 60 R 60 R
4 10 R R R R 10 R R 60 R R R R 60 R R 100 R R
但當我:
x[x>60] <- 60
x[x<10] <- 0
x[x > 9 & x < 15] <- "P"
x[x == 0] <- "S"
x[x > 14 & x < 30] <- "L"
x[x > 29 & x < 60] <- "I"
x[x == 60] <- "R"
我:
A B C D E F G H I J K L M N O P Q R S
1 S S S S L P I S R L S S P R S R S R S
2 S S S S S S S S R L S S P R S R L R R
3 S S S S S S S S R L S S P R S R S R S
4 P L I I S P S S R L S S P R S S R R R
任何暗示對這個結果,並就如何正確地實現我的目標是什麼? 任何建議,歡迎
看看'STR(DF)'之前和之後執行的每行代碼在你的第一次嘗試。我的猜測是它在第一次調用之後發生了變化,並且在隨後的調用中x不再是數字。 – mts
這兩個你想要的輸出是什麼?你不能只是做'df [] < - cut(unlist(df),c(-Inf,10,14,29,59,Inf),c(「S」,「P」,「L」,「我「,」R「))'? –