我想将“名称”添加到开头,"plc“添加到不同数据格式中不同列的观察结果的末尾,除外,中的名称已经在正确的位置上有"Name”或"plc“。下面是一个简单的reprex。
原始数据格式
names1a <- c("Name Alperton plc", "Bury", "Central", "Durham")
names1b <- c("Egham plc", "Fulton", "Great", "Heywood plc")
year1 <- c(1999, 2000, 2001, 2001)
df1 <- data.frame(names1a, names1b, year1)
names2 <- c("Charleton plc", "Birmingham", "Name Tees", "Salford")
year2 <- c(2000, 1955, 2001, 2001)
df2 <- data.frame(names2, year2)期望的结果:
df1
names1a names1b year1
1 Name Alperton plc Name Egham plc 1999
2 Name Bury plc Name Fulton plc 2000
3 Name Central plc Name Great plc 2001
4 Name Durham plc Name Heywood plc 2001df2
names2 year2
1 Name Charleton plc 2000
2 Name Birmingham plc 1955
3 Name Tees plc 2001
4 Name Salford plc 2001My approach:我得到了我想要的结果,但是我有一个包含许多列的大数据集,所以我的方法太重复了。我很难发挥作用,我认为其中一个在这里是有用的:
df1$names1a <- sub("$", " plc", df1$names1a)
df1$names1b <- sub("$", " plc", df1$names1b)
df2$names2 <- sub("$", " plc", df2$names2)
df1$names1a <- sub("plc plc", "plc", df1$names1a)
df1$names1b <- sub("plc plc", "plc", df1$names1b)
df2$names2 <- sub("plc plc", "plc", df2$names2)
df1$names1a <- sub("^", "Name ", df1$names1a)
df1$names1b <- sub("^", "Name ", df1$names1b)
df2$names2 <- sub("^", "Name ", df2$names2)
df1$names1a <- sub("Name Name", "Name", df1$names1a)
df1$names1b <- sub("Name Name", "Name", df1$names1b)
df2$names2 <- sub("Name Name", "Name", df2$names2)发布于 2021-01-17 11:59:51
最简单的方法可能是删除"Name“和"plc”,然后将其添加到所有内容中,如下所示:
f <- function(x) paste("Name", trimws(gsub("^Name|plc$", "", x)), "plc")
cols <- c("names1a", "names1b")
df1[cols] <- lapply(df1[cols], f)
df1
# names1a names1b year1
# 1 Name Arton plc Name Egh plc 1999
# 2 Name Bury plc Name Futon plc 2000
# 3 Name Cntr plc Name Grt plc 2001
# 4 Name Durh plc Name Hywood plc 2001
df2$names2 <- f(df2$names2)
df2
# names2 year2
# 1 Name Chrton plc 2000
# 2 Name Biringh plc 1955
# 3 Name Ts plc 2001
# 4 Name Sford plc 2001https://stackoverflow.com/questions/65760089
复制相似问题