我有大量数据集,每个数据集都包含一长串列名。在某些文件中,列名都是大写字母,而在某些文件中,只有列名的第一个字母大写。我需要附加数据集,并认为在数据集中匹配列名的最简单方法是将全大写名称转换为仅首字母大写的名称。
我希望找到一个通用的解决方案,甚至可能是单线。
这是我的示例数据集。所需的名称包含在names
语句中。
my.data2 <- "
landuse units grade CLAY LINCOLN BASINANDRANGE MCCARTNEY MAPLE
apple acres AAA 0 2 3 4 6
apple acres AA 1000 900 NA NA 700
pear acres AA 10.0 20 NA 30.0 40
peach acres AAA 500 400 350 300 200
"
my.data2 <- read.table(textConnection(my.data2), header=TRUE)
names(my.data2)[names(my.data2)=="CLAY"] <- "Clay"
names(my.data2)[names(my.data2)=="BASINANDRANGE"] <- "BasinandRange"
names(my.data2)[names(my.data2)=="LINCOLN"] <- "Lincoln"
names(my.data2)[names(my.data2)=="MCCARTNEY"] <- "McCartney"
names(my.data2)[names(my.data2)=="MAPLE"] <- "Maple"
my.data2
请注意,我包括了名称McCartney
,BasinandRange
并使事情变得更现实和更困难。但是,如果我能找到一个单行代码来处理 95% 的名称,并使用上述names
语句来处理诸如McCartney
和之类的复杂情况BasinandRange
,那就太好了。
我搜索了互联网,包括 StackOverflow 档案,但没有找到解决方案。对不起,如果我忽略了一个。感谢您的任何帮助。