作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个由全名组成的向量,名字和姓氏用逗号分隔,这是前几个元素的样子:
> head(val.vec)
[1] "Aabye,ֲ Edgar" "Aaltonen,ֲ Arvo" "Aaltonen,ֲ Paavo"
[4] "Aalvik Grimsb,ֲ Kari" "Aamodt,ֲ Kjetil Andr" "Aamodt,ֲ Ragnhild
我正在寻找一种方法将它们分成两个单独的名字和姓氏列。我的最终目的是将它们都作为更大数据框架的一部分。
我尝试使用这样的strsplit
函数
names<-unlist(strsplit(val.vec,','))
但它给了我一个长向量而不是两个单独的集合,我知道它是可以使用循环遍历所有元素,并将名字和姓氏放入 2 个单独的向量中,但考虑到大约有 25000 条记录,这有点耗时。
我看到了一些类似的问题,但讨论的是如何在 C+ 和 Java 上做到这一点
最佳答案
我们可以使用read.csv
将向量
转换为具有2列的data.frame
read.csv(text=val.vec, header=FALSE, stringsAsFactors=FALSE)
<小时/>
或者,如果我们使用strsplit
,而不是unlist
ing(这会将整个list
转换为单个向量
),我们可以分别提取list
中的第一个和第二个元素来创建两个向量
('v1'和'v2')。
lst <- strsplit(val.vec,',')
v1 <- lapply(lst, `[`, 1)
v2 <- lapply(lst, `[`, 2)
<小时/>
另一个选择是sub
v1 <- sub(",.*", "", val.vec)
v2 <- sub("[^,]+,", "", val.vec)
val.vec <- c("Aabye,ֲ Edgar", "Aaltonen,ֲ Arvo", "Aaltonen,ֲ Paavo",
"Aalvik Grimsb,ֲ Kari", "Aamodt,ֲ Kjetil Andr", "Aamodt,ֲ Ragnhild")
关于r - 将全名向量拆分为 2 个独立向量的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38530579/
我是一名优秀的程序员,十分优秀!