如何更有效地将列名大写?
How do I capitalise column names more efficiently?
我想将 data.frame 的列名称中的某些单词(“for”、“in”、“and”、“of”)大写。我目前的做法既费力又低效。任何改进它的帮助。
示例数据集(我的要长得多)
a <- runif(10, 0,100)
b <- runif(10, 0,100)
c <- runif(10, 0,100)
d <- runif(10, 0,100)
df <- cbind(a,b,c,d)
colnames(df) <- c("NamesofPeople", "HereandThere", "AllforOne", "LetMein")
当前方法
colnames(df) <- str_replace_all(colnames(filename), "NamesofPeople", "NamesOfPeople")
colnames(df) <- str_replace_all(colnames(filename), "HereandThere", "HereAndThere")
colnames(df) <- str_replace_all(colnames(filename), "AllforOne", "AllForOne")
colnames(df) <- str_replace_all(colnames(filename), "LetMein", "LetMeIn")
注意
如果这些字母作为单词的一部分包含在其他列中,我需要小心,例如“of”也将出现在“software”中,将其大写将导致“sOftware”。
您可以尝试使用正则表达式:
colnames(df) <- str_replace_all(colnames(df),
pattern = c("of([A-Z]|$)" = "Of\1",
"and([A-Z]|$)" = "And\1",
"for([A-Z]|$)" = "For\1",
"in([A-Z]|$)" = "In\1")
)
在这里,我检查是否有任何关键字(of、and、for、in)位于字符串的末尾($
)或后跟大写字母([A-Z]
)
我想将 data.frame 的列名称中的某些单词(“for”、“in”、“and”、“of”)大写。我目前的做法既费力又低效。任何改进它的帮助。
示例数据集(我的要长得多)
a <- runif(10, 0,100)
b <- runif(10, 0,100)
c <- runif(10, 0,100)
d <- runif(10, 0,100)
df <- cbind(a,b,c,d)
colnames(df) <- c("NamesofPeople", "HereandThere", "AllforOne", "LetMein")
当前方法
colnames(df) <- str_replace_all(colnames(filename), "NamesofPeople", "NamesOfPeople")
colnames(df) <- str_replace_all(colnames(filename), "HereandThere", "HereAndThere")
colnames(df) <- str_replace_all(colnames(filename), "AllforOne", "AllForOne")
colnames(df) <- str_replace_all(colnames(filename), "LetMein", "LetMeIn")
注意
如果这些字母作为单词的一部分包含在其他列中,我需要小心,例如“of”也将出现在“software”中,将其大写将导致“sOftware”。
您可以尝试使用正则表达式:
colnames(df) <- str_replace_all(colnames(df),
pattern = c("of([A-Z]|$)" = "Of\1",
"and([A-Z]|$)" = "And\1",
"for([A-Z]|$)" = "For\1",
"in([A-Z]|$)" = "In\1")
)
在这里,我检查是否有任何关键字(of、and、for、in)位于字符串的末尾($
)或后跟大写字母([A-Z]
)