我想使用以下命令重命名数据框PitchAccent
中total
列中的某些行:
total$PitchAccent <- sub("!H*","H*", total$PitchAccent)
因此!H*
现在变为H*
。
但是,当我之后检查H*
的数量时,它会保持与之前相同的状态,而!H*
次出现似乎已经消失。
而且,现在我做的时候:
summary(total$PitchAccent)
它没有告诉我:
> summary(total$PitchAccent)
!H* !H*L *? ..H ..L H% H* H*? H*L H*L? HH*L L% L*
262 2125 0 25 633 0 2056 0 6122 0 6 0 460
L*? L*H L*H? L*HL no !H*L? LH*L L !H H! .L L*!H L*HL?
0 7818 0 53 69569 0 2 1 0 0 1 1 0
,而只是:
> summary(total$PitchAccent)
Length Class Mode
89134 character character
答案 0 :(得分:2)
摘要更改的原因是sub()强制输入字符。因此总的$ PitchAccent不再是具有不同级别的因素,而是性格。因此摘要不提供任何有用的信息。强迫它回到因素
total$PitchAccent = as.factor(total$PitchAccent)
答案 1 :(得分:1)
具体地将因子的级别从!H *更改为H *
total$PitchAccent <- factor(total$PitchAccent)
levels(total$PitchAccent)[ levels(total$PitchAccent) == "!H*" ] <- "H*"
然后,如果您想将其恢复为字符格式,请按如下方式进行投射。
total$PitchAccent <- as.character(total$PitchAccent)
使用gsub
或sub
,您可以执行此操作
gsub("!H*", "H*", total$PitchAccent, fixed = TRUE )
sub("!H*", "H*", total$PitchAccent, fixed = TRUE )