Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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
使用dplyr更改行文本_R_Dplyr - Fatal编程技术网

使用dplyr更改行文本

使用dplyr更改行文本,r,dplyr,R,Dplyr,我想问dplyr是否可以更改行文本。例如,如果我有这样一个表: Fruit Cost apple 6 apple 7 orange 3 orange 4 如何使用dplyr将水果列中的所有“苹果”更改为“柠檬”。如果dplyr不能做到这一点,那么R中是否有任何函数可以做到这一点(假设我有大量行需要更改)。谢谢。要使用dplyr执行此操作,我认为您需要使用mutate()和ifelse()语句。但我认为非dplyr选项可能更容易。如果您的“水果”栏已经

我想问dplyr是否可以更改行文本。例如,如果我有这样一个表:

Fruit     Cost
apple      6
apple      7
orange     3
orange     4

如何使用dplyr将水果列中的所有“苹果”更改为“柠檬”。如果dplyr不能做到这一点,那么R中是否有任何函数可以做到这一点(假设我有大量行需要更改)。谢谢。

要使用
dplyr
执行此操作,我认为您需要使用
mutate()
ifelse()
语句。但我认为非dplyr选项可能更容易。如果您的“水果”栏已经是字符,则第一步可能是不必要的:

d$Fruit <- as.character(d$Fruit)

##  The dplyr option:
#d %>% mutate( Fruit=ifelse(Fruit=="apple","lemon", Fruit ) )

##  The base R option:
d$Fruit[ d$Fruit == "apple" ] <- "lemon"
d$Fruit%变异(Fruit=ifelse(Fruit==“苹果”、“柠檬”、水果))
##基本R选项:

d$Fruit[d$Fruit==“apple”]您也可以使用
car
中的
recode
。这将适用于
因子
字符

library(dplyr)
library(car)
res <- mutate(df1, Fruit= recode(Fruit, "'apple'='lemon'"))
res
#    Fruit Cost
#1  lemon    6
#2  lemon    7
#3 orange    3
#4 orange    4

str(res) 
#'data.frame':  4 obs. of  2 variables:
# $ Fruit: Factor w/ 2 levels "lemon","orange": 1 1 2 2
# $ Cost : int  6 7 3 4
库(dplyr)
图书馆(汽车)

res
Fruit
列的类别是什么?相关答案(虽然不是dplyr):@bondedust在转换为字符(第一行)后,级别将不存在。如果您想使用
mutate
ifelse
mutate(df1,Fruit=ifelse(Fruit==“apple”,“lemon”,Fruit))
@kferris10谢谢你,但我的代码中已经有了这一点,上面已经注释掉了。:)如果我想改变多个项目,而不仅仅是苹果柠檬呢。我试过这样做:变异(df1,水果=重新编码(水果,“‘苹果’=‘柠檬’”,“‘橘子’=‘葡萄’”),但它不起作用。我尝试将这两个类都用作character和factor,但它们都在if(as.factor.result)中表示错误。谢谢。试试
作为分隔符<代码>变异(df1,水果=重新编码(水果,“‘苹果’=‘柠檬’;‘橙色’=‘葡萄’))
library(dplyr)
library(car)
res <- mutate(df1, Fruit= recode(Fruit, "'apple'='lemon'"))
res
#    Fruit Cost
#1  lemon    6
#2  lemon    7
#3 orange    3
#4 orange    4

str(res) 
#'data.frame':  4 obs. of  2 variables:
# $ Fruit: Factor w/ 2 levels "lemon","orange": 1 1 2 2
# $ Cost : int  6 7 3 4
 df1$Fruit <- as.character(df1$Fruit)
 str(mutate(df1, Fruit= recode(Fruit, "'apple'='lemon'")))
 #'data.frame': 4 obs. of  2 variables:
 #$ Fruit: chr  "lemon" "lemon" "orange" "orange"
 #$ Cost : int  6 7 3 4
df1 <- structure(list(Fruit = structure(c(1L, 1L, 2L, 2L),
.Label = c("apple", 
"orange"), class = "factor"), Cost = c(6L, 7L, 3L, 4L)),
.Names = c("Fruit", 
"Cost"), row.names = c(NA, -4L), class = "data.frame")