我有大量的数据集,每个数据集都包含一长串列名。在一些文件中,列名都是大写字母,而在某些文件中,只有列名的第一个字母是大写。我需要附加数据集,并认为在数据集之间匹配列名的最简单方法是将全部名称转换为只有首字母大写的名称。列名更改字母大小写
我希望找到一个通用的解决方案,甚至可能是一个单线程。
这是我的示例数据集。所需的名称包含在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存档,没有找到解决方案。对不起,如果我忽略了一个。感谢您的任何帮助。
它可能会更容易些,如果你转换所有的名称全部大写或全部小写使用'toupper'或'tolower',分别。将它们转换为混合大小写将会更困难。 –