【发布时间】:2012-01-26 18:31:59
【问题描述】:
我正在使用lapply 尝试拆分数据框中的字符串。这些字符串看起来都类似于"02D_48M_RHD"。我正在尝试获取“D”之前和“M”之前的数字。
我对@987654325@ 的使用似乎有效:
a <- lapply(res$description, strsplit, split="[DM]_", fixed=FALSE)
> a[[1]]
[[1]]
[1] "02" "48" "RHD"
但是,在我的一生中,我无法弄清楚如何仅访问 a[1] 中向量的第一个元素。 documentation 建议 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 是否以不同于我预期的方式提供输出?我期望一个长度为三的向量列表,这就是它的样子。或者,这是我得到的,但我试图错误地访问它们?
最后,我想在我的数据框中添加三列,每条信息各一列,所以任何可以帮助我朝着这个方向前进的东西都将不胜感激。
【问题讨论】: