R 用参考数据框中包含的字符串替换数字
我有一个R 用参考数据框中包含的字符串替换数字,r,dplyr,stringr,R,Dplyr,Stringr,我有一个dfu a看起来像: df_a <- tibble::tribble( ~id, ~string, 115088, "1-3-5-13", 678326, "1-9-13-3", 105616, "1-3-5-13" ) 我想用参考数据框id中存储的文本替换df_a中string列中的数字 结果应该是: df_output <- tibble::tribble(
dfu a
看起来像:
df_a <- tibble::tribble(
~id, ~string,
115088, "1-3-5-13",
678326, "1-9-13-3",
105616, "1-3-5-13"
)
我想用参考数据框id
中存储的文本替换df_a
中string
列中的数字
结果应该是:
df_output <- tibble::tribble(
~id, ~string,
115088, "aaa-bbb-ccc-ddd",
678326, "aaa-eee-ddd- bbb",
105616, "aaa-bbb-ccc-ddd"
)
<代码> dfyOutux是的,你这里有一个很讨厌的,这是我写的一个专用的C++方法,从R调用它,因为我看到它有AyyMysix.< 我为您编写了一个迭代循环—它可能有效—我不确定,但即使它有效,并且您的数据超过200000行,它也会成为一个问题,并且可能需要很长时间才能完成
temp = strsplit(df_a$string, "-") %>% lapply(function(x) as.numeric(x))
temp.List = list()
actual.List = list()
for(i in 1:length(temp)){
for (j in 1:nrow(id)){
if(temp[[i]] %in% id$id_string[j]){
temp.List[j] = id$name[j]
}else{
temp.List[j] = NULL
}
}
actual.List[[i]]= temp.List %>% unlist %>% paste(sep ='-')
}
desired.Output = cbind(df_a$id,actual.List %>% unlist)
#cleanup
rm(temp,temp.List,actual.List)
是的,你有一个很讨厌的,这里是我写的一个C++的方法,从R调用它,因为我看到它有AyyMysix.< 我为您编写了一个迭代循环—它可能有效—我不确定,但即使它有效,并且您的数据超过200000行,它也会成为一个问题,并且可能需要很长时间才能完成
temp = strsplit(df_a$string, "-") %>% lapply(function(x) as.numeric(x))
temp.List = list()
actual.List = list()
for(i in 1:length(temp)){
for (j in 1:nrow(id)){
if(temp[[i]] %in% id$id_string[j]){
temp.List[j] = id$name[j]
}else{
temp.List[j] = NULL
}
}
actual.List[[i]]= temp.List %>% unlist %>% paste(sep ='-')
}
desired.Output = cbind(df_a$id,actual.List %>% unlist)
#cleanup
rm(temp,temp.List,actual.List)
string
列中的数字/破折号组合是否具有一致的长度(每行具有相同数量的数字和破折号)?string
列中的数字/破折号组合是否具有一致的长度(每行具有相同数量的数字和破折号)?