我是一名有用的助手,可以为您翻译文本。
使用这段代码,似乎第二行中用db$mag2的值替换不会改变mag1的值(NA),而用db$mag3的值替换会将其改为“name”。如果mag2中有非NA值,则不应激活第二行。 现在,这是我收到的错误信息:
我有一个问题,对我来说似乎相当简单,但我自己无法解决。我在StackOverflow上搜索了解决方案,我猜已经有人解决了这个问题,但我还没有找到。
我有一个基于5个数据框合并而成的数据框,看起来像这样:
id | mag1 | mag2 | mag3
1 | name | name | name
2 | NA | NA | name
3 | NA | name | NA
在mag2和mag3中,总是有一个填写了名称的单元格(没有任何一行的mag1、mag2和mag3中有NA)。我希望更改mag1的值,使其永远不为空,并且取下一个非空单元格的值。
我想使用以下代码:
db$mag1[is.na(db$mag1)] <- db$mag2
db$mag1[is.na(db$mag1)] <- db$mag3
使用这段代码,似乎第二行中用db$mag2的值替换不会改变mag1的值(NA),而用db$mag3的值替换会将其改为“name”。如果mag2中有非NA值,则不应激活第二行。 现在,这是我收到的错误信息:
Warning message:
In db$mag[is.na(db$mag1)] <- db$mag2 :
number of items to replace is not a multiple of replacement length
我猜我的代码行中有一个非常简单的错误,但我无法看到它。有什么想法吗?
read.table
读取数据集时,设置stringsAsFactors=FALSE
或在data.frame(
中设置。 - akrun