ですJSON形式に変換します。はRとアンシリアライズYAMLの列ができません:NASが強制によって導入さ:3.0私はYAMLからWebアプリケーションによって生成された列をアンシリアライズしようとすると、Rに、バージョン2.1.15でYAMLパッケージを使用しています実際の範囲外
> tbl %>%
+ select(value) %>%
+ collect() %>%
+ head(20)
# A tibble: 20 x 1
value
<chr>
1 "--- []\n"
2 "--- []\n"
3 "---\n- - unknown\n - 383.0\n- - hd720\n - 425.0\n"
4 "--- []\n"
5 "---\n- - hd720\n - 102.0\n"
6 "---\n- - unknown\n - 0.0\n"
7 "--- []\n"
8 "---\n- - unknown\n - 301.0\n- - hd1080\n - 1.0\n"
9 "--- []\n"
10 "---\n- - hd1080\n - 1103.0\n"
11 "--- []\n"
12 "--- []\n"
13 "---\n- - hd1080\n - 803.0\n"
14 "---\n- - hd720\n - 143.0\n"
15 "--- []\n"
16 "--- []\n"
17 "---\n- - unknown\n - 9.0\n- - hd1080\n - 102.0\n- - hd720\n - 37.0\n"
18 "---\n- - unknown\n - 136.0\n"
19 "---\n- - hd720\n - 973.0\n"
20 "---\n- - unknown\n - 330.0\n- - hd1080\n - 3.0\n"
私は次の関数を使用して、このコラムをアンシリアライズしよう:
df = read.csv("test.txt")
df %>%
rowwise() %>%
mutate(
unserialized_value = ifelse(
is.recursive(yaml.load(value)) || is.vector(yaml.load(value)),
as.character(toJSON(yaml.load(value))),
as.character(yaml.load(value)))
) %>%
View()
私は機能と同じように実装しました:
unserialize_value <- function(val) {
if (length(val) != 1) {
stop("unserialize_value input must be of length 1")
}
if (is.na(val)) {
return(NA)
} else {
print(paste("orig val:", val))
yaml_val = yaml.load(val)
print(paste("YAML val:", yaml_val))
if (is.recursive(yaml_val) || is.vector(yaml_val)) {
print("returning list")
return(as.character(toJSON(yaml_val)))
} else {
print("returning char")
return(as.character(yaml_val))
}
}
}
mutate
でこの機能を使用する場合(ただし、
そして実際、数字はこれらのエラーのために、NA
秒になっています
1: In yaml.load(value) : NAs introduced by coercion: 301.0 is out of real range
2: In yaml.load(value) : NAs introduced by coercion: 1.0 is out of real range
3: In yaml.load(value) : NAs introduced by coercion: 301.0 is out of
...
ファイルはここにある:興味深いことにtest.txt
、私が行うとき:
toJSON(yaml.load("---\n- - unknown\n - 330.0\n- - hd1080\n - 3.0\n"))
正常に動作します。
[[["unknown"],[330]],[["hd1080"],[3]]]
dplyr
/mutate
コールで変換がうまくいきませんか?
あなたはGitHubの上spgarbetている場合は、バグ/バグ修正を指すように、あなたの投稿を編集して自由に感じます! – slhck