Mak*_*aki 0 string r character dataframe
我只是不明白为什么我的数据框仍然是一个因素,即使我尝试将其更改为一个字符.
这里我有一个数据框list_attribute$affrete.
affrete
<chr>
Fruits
Apple
Grape Fruits
Lemon
Peach
Banana
Orange
Strawberry
Apple
Run Code Online (Sandbox Code Playgroud)
我应用了一个函数,list_attribute$affrete使用另一个数据框将一些值替换为其他值renaming,该数据框有两列(Name和Rename).
affrete <- plyr::mapvalues(x = unlist(list_attribute$affrete, use.names = F),
from = as.character(renaming$Name),
to = as.character(renaming$Rename))
affrete <- as.character(affrete)
list_attribute$affrete <- data.frame(affrete)
Run Code Online (Sandbox Code Playgroud)
数据框renaming看起来像这样;
Name Rename
<fctr> <fctr>
Apple Manzana
Orange Naranja
Lemon Limon
Grape Uva
Peach Melocoton
Pinapple Anana
Run Code Online (Sandbox Code Playgroud)
这是list_attribute$affrete在应用上述这些过程之后.
affrete
<fctr>
Manzana
Grape Fruits
Limon
Melocoton
Banana
Naranja
Strawberry
Manzana
Run Code Online (Sandbox Code Playgroud)
默认情况下data.frame有参数stringsAsFactors = TRUE.当你调用data.frame(affrete)它时,将字符转换为因子.你可以:
data.frame(affrete, stringsAsFactors = FALSE)来options(stringsAsFactors = FALSE)list_attribute$affrete$affrete <- as.character(list_attribute$affrete$affrete)tbls从tidyverse,于是打电话tibble(affrete)来代替.这些从不转换字符,以及其他好处.