我正在lapply
尝试拆分数据框中的字符串。字符串看起来都类似于"02D_48M_RHD"
。我正在尝试获取“D”之前和“M”之前的数字。
我的使用lapply
似乎有效:
a <- lapply(res$description, strsplit, split="[DM]_", fixed=FALSE)
> a[[1]]
[[1]]
[1] "02" "48" "RHD"
但是,在我的一生中,我无法弄清楚如何仅访问 a[ 1 ] 中向量的第一个元素。文档建议应该给我第a[[1]][1]
一个元素,但这就是发生的事情:
> a[[1]][1]
[[1]]
[1] "02" "48" "RHD"
我不明白为什么这不起作用。R 告诉我这是一个向量,但它也说它的长度为 1。
> is.vector(a[[1]])
[1] TRUE
> length(a[[1]])
[1] 1
我不确定我在误解什么。是否lapply
以不同于我期望的方式提供输出?我期望一个长度为三的向量列表,这就是它的样子。或者,这是我得到的,但我试图错误地访问它们?
最后,我想在我的数据框中添加三列,每一条信息对应一列,所以任何可以帮助我朝这个方向前进的东西都将不胜感激。