拆分字符串、标记子字符串并将标记转换为数字向量

Mo.*_*.ms 2 string r token strsplit

我有一个字符串:

String <- "268.1,271.1,280.9,294.7,285.6,288.6,384.4\n124.8,124.2,116.2,117.7,118.3,122.0,168.3\n18,18,18,18,18,18,18"
Run Code Online (Sandbox Code Playgroud)

我想将它分成三个基于\n.

我使用以下代码做到了这一点:

strsplit(String, "\n")
Run Code Online (Sandbox Code Playgroud)

结果是三个子串。

  1. 我怎样才能得到三个独立的存在,以便我可以使用每个向量进行计算?

  2. 如何标记子字符串以创建数值向量?

Ian*_*ell 5

下面是与基地R.的方法strsplit是有点棘手,因为它返回一个列表,没有在列表上工作。

  1. 正如您在问题中所建议的那样,使用strsplitwithsplit = "\n"拆分为 3 个字符串的列表。

  2. 用于unlist将该列表更改为 3 个字符串的向量。

  3. strsplit再次使用withsplit = ","创建一个包含 3 个字符向量的列表

  4. 使用lapply这些特征向量转换成数字载体。

lapply(strsplit(unlist(strsplit(String,"\n")),","),as.numeric)
[[1]]
[1] 268.1 271.1 280.9 294.7 285.6 288.6 384.4

[[2]]
[1] 124.8 124.2 116.2 117.7 118.3 122.0 168.3

[[3]]
[1] 18 18 18 18 18 18 18
Run Code Online (Sandbox Code Playgroud)