如何将列分隔字符转换为R中的向量?

时间:2017-01-13 23:55:10

标签: r

我有很多想要分组的结果。

示例分组是

> results$netting$codes[[1]]
[1] "7,4,5,9,39"

如果我对该组进行硬编码,我会得到我正在寻找的结果。

dplyr::filter(xCategories,xCategories$code %in% c( 7,4,5,9,39 ))
   code frequency percentage
1     4       124  20.462046
2     4       124  20.462046
3     4       124  20.462046
4     4       124  20.462046
5     5       112  18.481848
6     5       112  18.481848
7     5       112  18.481848
8     5       112  18.481848
9     7        65  10.726073
10    7        65  10.726073
11    7        65  10.726073
12    7        65  10.726073
13    9        64  10.561056
14    9        64  10.561056
15    9        64  10.561056
16    9        64  10.561056
17   39         8   1.320132

如果我引用该组,我就没有结果。

> dplyr::filter(xCategories,xCategories$code %in% c( results$netting$codes[[1]] ))
[1] code       frequency  percentage
<0 rows> (or 0-length row.names)

> dplyr::filter(xCategories,xCategories$code %in% c( as.vector(results$netting$codes[[1]]) ))
[1] code       frequency  percentage
<0 rows> (or 0-length row.names)

如何将列分隔符转换为R?

中的向量

1 个答案:

答案 0 :(得分:1)

对于右侧,您可能需要使用scan()。它可以读取分隔的字符串并自动将结果转换为数字。

scan(text = results$netting$codes[[1]], sep = ",")

示例:

scan(text = "7,4,5,9,39", sep = ",")
# Read 5 items
# [1]  7  4  5  9 39

1:10 %in% scan(text = "7,4,5,9,39", sep = ",")
# Read 5 items
# [1] FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE  TRUE FALSE