[英]assign/change character/factor level using characters
I have a dataframe and select one row to obtain one row but maintain the levels.我有一个数据框并选择一行以获得一行但保持级别。 I need this row to use predict() with a model later one.
我需要这一行来将 predict() 与稍后的模型一起使用。
I try to change one value of the row by assigning a characters (?) to a factor level like this:我尝试通过将字符 (?) 分配给这样的因子级别来更改行的一个值:
df <- data.frame(some_amazing_column = c("yes", "no"))
levels(df$some_amazing_column)
row <- head(df, 1)
char <- "no"
head(row)
levels(row$some_amazing_column)
row$some_amazing_column = char
levels(row$some_amazing_column)
This loses the factor levels.这将失去因子水平。 Am I changing the value (factor level) correctly?
我是否正确更改了值(因子水平)? What is the right way to change, in this case, yes to no whilst maintaining the levels.
在这种情况下,在保持水平的同时改变是对否的正确方法是什么。 please not that the assigned value is a character coming from a front-end.
请注意,分配的值是来自前端的字符。
PS: PS:
The accepted answer's hint results in this working code:接受的答案的提示导致此工作代码:
df <- data.frame(some_amazing_column = c("yes", "no"))
levels(df$some_amazing_column)
row <- head(df, 1)
char <- "no"
head(row)
levels(row$some_amazing_column)
row$some_amazing_column <- factor(char, levels = levels(row$some_amazing_column))
head(row)
levels(row$some_amazing_column)
To change the level, one way is to convert the 'char' to factor
with same levels
as in the original dataset and assign要更改级别,一种方法是将“字符”转换为与原始数据集中
levels
相同的factor
并分配
row$some_amazing_column <- factor(char, levels = levels(row$some_amazing_column))
levels(row$some_amazing_column)
#[1] "no" "yes"
row
# some_amazing_column
#1 no
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.