gpt4 book ai didi

r - 将全名向量拆分为 2 个独立向量的有效方法

转载 作者:行者123 更新时间:2023-12-02 07:47:30 25 4
gpt4 key购买 nike

我有一个由全名组成的向量,名字和姓氏用逗号分隔,这是前几个元素的样子:

> 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,而不是unlisting(这会将整个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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com