2016-07-13 8 views
0

문자열의 열 (공백으로 구분 된 단어)을 더미 변수 (단어가 있음을 나타 내기 위해 0-1)로 변환하려고 여기에있는 지침 Dummy variables from a string variable을 따르고 있습니다. NOTUSED/concat.split.expanded 사용) 해당 행의 문자열에 사용하지만, 아래 오류의 무리 얻을 :splitstackshape pkg - concat.split.expanded 강제 변환으로 NA 반환

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

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

중 하나에 의해 선행을 내가 거기 때로 믿을 확신 그 칼럼에있는 어떤 종족도 변환 될 수 없습니다. 이 문제를 해결하는 방법을 모릅니다. 감사! 내가 그 실행했습니다

명령은 문제 발생 :

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

이 또는 채우기가 적용되지 않은 문제를 생성을 =

당신은 당신이에 ("VAR2를"연결된 문자열을 분할하는 것을 지정해야

답변

1

샘플 데이터)와 문자열로 연결 한 숫자 값 (아래의 샘플 데이터에서는 "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_eseq이고, 숫자 입력은 seq입니다.

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