我想几列从其他data.frame添加到data.frame:如何通过矢量字符稍有不同的字符串匹配
从中我要添加列的data.frame:
head(fix)[1:2,]
Year Name Moders.hjälp. Utg.Sjukvård. Antal.Fall.Moderskapshjälp. Antal.Dagar.Moderskapshjälp. Antal.Dödsfall.
1 1921 Allians 2003 NA 42 1603 43
2 1921 Bageri- och konditoriindustriarb. I Stocholm NA NA NA NA 10
换句话说,我想补充fix[,3:ncol(fix)]
到:
head(data)[1:4,]
Year Name Delägare.män. Delägare.kvinnor. Sjukdomsfall.män.
92 1921 Sbk. Allians 2416 1610 526
198 1921 Bageri- och Konditoriindustriarb. I Stockholm sbh-k. 143 13 19
由Year
柱和Name
列匹配。
的problem
在于:上述
在fix
和data
列Name
具有略微不同的名称(即Allians
VS Sbk. Allians
)。我无法找到匹配字符串部分的正确解决方案以找到相似之处。我试图用match
,但没有成功......
这里是dput
dput(head(fix)[1:2,])
structure(list(Year = c(1921L, 1921L), Name = c("Allians", "Bageri- och konditoriindustriarb. I Stocholm"
), Moders.hjälp. = c(2003, NA), Utg.Sjukvård. = c(NA_integer_,
NA_integer_), Antal.Fall.Moderskapshjälp. = c(42L, NA), Antal.Dagar.Moderskapshjälp. = c(1603L,
NA), Antal.Dödsfall. = c(43L, 10L)), .Names = c("Year", "Name",
"Moders.hjälp.", "Utg.Sjukvård.", "Antal.Fall.Moderskapshjälp.",
"Antal.Dagar.Moderskapshjälp.", "Antal.Dödsfall."), row.names = 1:2, class = "data.frame")
dput(head(data)[,c(1:2,11:13)])
structure(list(Year = c(1921L, 1924L, 1921L, 1924L, 1921L, 1924L
), Name = c("Sbk. Allians", "Sbk. Allians", "Bageri- och Konditoriindustriarb. I Stockholm sbh-k.",
"Bageri- och Konditoriindustriarb. I Stockholm sbh-k.", "Bergsunds verkstads arbetares sbk",
"Bergsunds verkstads arbetares sbk"), Delägare.män. = c(2416L,
3896L, 143L, 129L, 280L, 289L), Delägare.kvinnor. = c(1610L,
4300L, 13L, 13L, 2L, NA), Sjukdomsfall.män. = c(526L, 1084L,
19L, 34L, 100L, 97L)), .Names = c("Year", "Name", "Delägare.män.",
"Delägare.kvinnor.", "Sjukdomsfall.män."), class = "data.frame", row.names = c(92L,
93L, 198L, 199L, 222L, 223L))
感激的任何建议!
从全名'修复'始终是'data'中名称的一部分? – alexwhan 2013-03-11 10:29:00
也许你正在寻找'agrep'。我仍然不清楚*你想要做什么。 – A5C1D2H2I1M1N2O1R2T1 2013-03-11 10:29:47
@Ananda Mahto'agrep'可能是答案..但我怎么能把它放在'match'? – user1665355 2013-03-11 10:32:13