首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过强制错误返回NA的splitstackshape pkg - concat.split.expanded

通过强制错误返回NA的splitstackshape pkg - concat.split.expanded
EN

Stack Overflow用户
提问于 2016-07-13 12:18:56
回答 1查看 243关注 0票数 0

我按照这里的说明,Dummy variables from a string variable尝试使用concat.split.expanded将一列字符串(由空格分隔的单词)转换为虚拟变量(0-1,以指示在该行的字符串中未使用/使用的单词),但获得以下错误:

代码语言:javascript
复制
In lapply(listOfValues, as.integer) : NAs introduced by coercion

在此之前

代码语言:javascript
复制
Error in seq.default(min(vec), max(vec)) : 'from' cannot be NA, NaN or infinite

我很确定列中没有任何需要转换的NAs,更不用说有那么多了。不知道该怎么解决这个问题。谢谢!

我一直在运行的生成问题的命令:

代码语言:javascript
复制
concat.split.expanded(dataset, "stringvarname", sep = " ", mode = "binary", drop = false)

使用或不使用fill=生成问题

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-17 13:05:37

您需要指定您正在分割串连字符串(下面示例数据中的“var2”),而不是将数字值串连为字符串(下面示例数据中的“var3”)。

下面是一个再现错误并显示工作解决方案的示例:

代码语言:javascript
复制
df = data.frame(var1 = 1:2, var2 = c("a b c", "a c d"), var3 = c("1 2 3", "1 2 5"))
library(splitstackshape)

cSplit_e(df, "var3", sep = " ")
#   var1  var2  var3 var3_1 var3_2 var3_3 var3_4 var3_5
# 1    1 a b c 1 2 3      1      1      1     NA     NA
# 2    2 a c d 1 2 5      1      1     NA     NA      1

## Will give you an error
cSplit_e(df, "var2", sep = " ")
#  Error in seq.default(min(vec), max(vec)) : 
#   'from' cannot be NA, NaN or infinite In addition: Warning messages:
# 1: In lapply(listOfValues, as.integer) : NAs introduced by coercion
# 2: In lapply(listOfValues, as.integer) : NAs introduced by coercion

cSplit_e(df, "var2", sep = " ", type = "character")
#   var1  var2  var3 var2_a var2_b var2_c var2_d
# 1    1 a b c 1 2 3      1      1      1     NA
# 2    2 a c d 1 2 5      1     NA      1      1

为什么?cSplit_e使用seqseq用于数字输入。

代码语言:javascript
复制
> seq("a", "c")
Error in seq.default("a", "c") : 'from' cannot be NA, NaN or infinite
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38351553

复制
相关文章

相似问题

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