我在R中有一个data.frame,如下所示:
fruits
X1 X2 X3
aa kiwi 15
ba orange 25
cc lemon 23
ba apple 17
cc lemon 19
cc orange 18
cc orange 21
ba banana 17
Run Code Online (Sandbox Code Playgroud)
我想替换列X2中除"橙色"和"柠檬"与"其他"之外的所有值.如何在R中做到?
示例数据:
fruits <- structure(list(X1 = structure(c(1L, 2L, 3L, 2L, 3L, 3L, 3L, 2L
), .Label = c("aa", "ba", "cc"), class = "factor"), X2 = structure(c(3L,
5L, 4L, 1L, 4L, 5L, 5L, 2L), .Label = c("apple", "banana", "kiwi",
"lemon", "orange"), class = "factor"), X3 = c(15L, 25L, 23L,
17L, 19L, 18L, 21L, 17L)), .Names = c("X1", "X2", "X3"), class = "data.frame", row.names = c(NA,
-8L))
Run Code Online (Sandbox Code Playgroud)
首先创建一个变量,指示要更改的行.你可以这样做,例如:
shouldBecomeOther<-!(fruits$X2 %in% c("orange", "lemon"))
Run Code Online (Sandbox Code Playgroud)
然后使用该索引器:
fruits$X2[shouldBecomeOther]<- "other"
Run Code Online (Sandbox Code Playgroud)
请注意,如果列是一个因素(极有可能),则需要更多工作,如下所示:
tmp<-as.character(fruits$x2)
tmp[shouldBecomeOther]<-"other"
fruits$x2<-factor(tmp)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8125 次 |
| 最近记录: |