好吧,我正在使用旧的扫描 .pdf 进行一些 .pdf 抓取,并将其转换为可读的,并且各列排列得不太好,因此第二列中的一些信息被分成第一列。它看起来像这样:
df1 <- data.frame(A = c("1253", "3534 n", "9348", "0945", "9457 h", "89745 g"), B = c("uiop", "iud", "eidj", "iodw", "ops", "ios"))
df1
A B
1 1253 uiop
2 3534 n iud
3 9348 eidj
4 0945 iodw
5 9457 h ops
6 89745 g ios
我希望它最终像这样:
df2 <- data.frame(A = c("1253", "3534", "9348", "0945", "9457", "89745"), B = c("uiop", "niud", "eidj", "iodw", "hops", "gios"))
df2
A B
1 1253 uiop
2 3534 niud
3 9348 eidj
4 0945 iodw
5 9457 hops
6 89745 gios
我不确定如何(或者是否可能)编写一些内容来遍历该列(实际数据大约有 2,000 行)并将第 1 列末尾的任何字母与第 2 列中的字母连接起来。
最佳答案
我将其全部粘贴到一列中,然后将数字提取到一列中,将字母提取到另一列中:
library(dplyr)
library(stringr)
df1 %>%
mutate(
AB = paste0(A, B),
numbers = as.numeric(str_extract(AB, pattern = "[:digit:]+")),
letters = str_extract(AB, pattern = "[:alpha:]+")
)
# A B AB numbers letters
# 1 1253 uiop 1253uiop 1253 uiop
# 2 3534 n iud 3534 niud 3534 niud
# 3 9348 eidj 9348eidj 9348 eidj
# 4 0945 iodw 0945iodw 0945 iodw
# 5 9457 h ops 9457 hops 9457 hops
# 6 89745 g ios 89745 gios 89745 gios
关于r - 从列中的一串数字中提取字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74779788/