首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替换数据帧的字符元素

替换数据帧的字符元素
EN

Stack Overflow用户
提问于 2013-12-05 23:38:18
回答 1查看 123关注 0票数 0

我有一个数据框架和一些人物误读,

代码语言:javascript
复制
example1
1         SABRINA MOCKENHAUPT
2             IRINA MIKITENKO
3         MARILSON DOS SANTOS
4                   RYAN HALL
5                 TIKI GELANA
6            KENTARO NAKAMOTO
7               JAOUAD GHARIB
8                   S…REN KAH
9            CONSTANTINA DITA

我想替换一些元素。例如,替换第八个元素exemple1$exemple1[[8]]<-"SÖREN KAH"。但它告诉我这个错误

代码语言:javascript
复制
In `[[<-.factor`(`*tmp*`, 8, value = c(57L, 29L, 41L, 54L, 65L,  :invalid factor level, NA generated
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-06 00:22:10

您还没有提供一个可重复的示例,所以我猜测有一点:但问题似乎是example1是由各种因素组成的。

以下是example1的基本猜测

代码语言:javascript
复制
example1 <- as.factor(LETTERS[1:9])

当您打印factor1时,可能会看到以下内容:

代码语言:javascript
复制
R> example1
[1] A B C D E F G H I
Levels: A B C D E F G H I

现在,如果我们尝试用非因子( levels中没有列出的内容)替换任何项,我们将得到以下错误(类似于您的错误):

代码语言:javascript
复制
R> example1[8] <- "KK"
Warning message:
In `[<-.factor`(`*tmp*`, 8, value = "KK") :
  invalid factor level, NA generated

但是请注意,您可以将一个列出的因素替换为另一个,这意味着example1[8] <- "A"是有效的。

我猜你不想要因素--你想要角色。所以你需要强迫example1去扮演角色。这样做如下

代码语言:javascript
复制
R> example1.ch <- as.character(example1)

不,你的替代是可行的:

代码语言:javascript
复制
R> example1.ch[8] <- 'kk'
R> example1.ch
[1] "A"  "B"  "C"  "D"  "E"  "F"  "G"  "kk" "I"

通常,您可以使用命令str()来了解您的数据对象是由什么组成的--当您遇到像这样的奇怪错误时,这将有所帮助。

代码语言:javascript
复制
R> str(example1)
 Factor w/ 9 levels "A","B","C","D",..: 1 2 3 4 5 6 7 1 9
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20413096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档