繁体   English   中英

splitstackshape pkg-concat.split.expanded强制错误返回NA

[英]splitstackshape pkg - concat.split.expanded returning NA by coercion errors

我按照这里的说明从字符串变量中获取虚拟变量,以尝试使用以下方式将一列字符串(用空格分隔的单词)转换为伪变量(0-1表示该行的字符串中未使用/使用过的单词) concat.split.expanded但出现了以下错误:

In lapply(listOfValues, as.integer) : NAs introduced by coercion

前面有一个

Error in seq.default(min(vec), max(vec)) : 'from' cannot be NA, NaN or infinite

我很确定该列中没有要转换的NA,更不用说那么多了。 不确定如何解决此问题。 谢谢!

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

concat.split.expanded(dataset, "stringvarname", sep = " ", mode = "binary", drop = false)

产生问题,无论是否填充

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

这是一个重现您的错误并显示有效解决方案的示例:

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用于数字输入。

> seq("a", "c")
Error in seq.default("a", "c") : 'from' cannot be NA, NaN or infinite

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM