R:如何在数据框列中用分号分隔每个单词的第一个大写字母?
假设我有一个数据帧R:如何在数据框列中用分号分隔每个单词的第一个大写字母?,r,dataframe,lowercase,R,Dataframe,Lowercase,假设我有一个数据帧df > df <- data.frame(Disease = c('Disease Entry1; disease Entry2', 'disease Entry4','disease Entry5; disease entry6'), ID = c(1,2,3)) > df Disease ID 1 Disease Entry1; disease Entry2 1 2 di
df
> df <- data.frame(Disease = c('Disease Entry1; disease Entry2', 'disease Entry4','disease Entry5; disease entry6'), ID = c(1,2,3))
> df
Disease ID
1 Disease Entry1; disease Entry2 1
2 disease Entry4 2
3 disease Entry5; disease entry6 3
我假设我会以某种方式使用
tolower
函数,但是如何考虑分号呢 您可以先将所有字母转换为小写,然后使用gsub
在BOS或之后转换字母
与\\U
一起使用后参考\\1
至大写:
df$Disease <- gsub("(?<=^|; )([a-z])", "\\U\\1", tolower(df$Disease), perl = T)
df
# Disease ID
#1 Disease entry1; Disease entry2 1
#2 Disease entry4 2
#3 Disease entry5; Disease entry6 3
df$Disease您可以先将所有字母转换为小写,然后使用gsub
在BOS或之后转换字母
与\\U
一起使用后参考\\1
至大写:
df$Disease <- gsub("(?<=^|; )([a-z])", "\\U\\1", tolower(df$Disease), perl = T)
df
# Disease ID
#1 Disease entry1; Disease entry2 1
#2 Disease entry4 2
#3 Disease entry5; Disease entry6 3
df$Disease是否总是以大写字母开头的单词Disease
?或者这些词可以改变吗?如果没有,我建议使用tolower()
,然后使用gsub(“疾病”,“疾病”,df$disease)
应该更清楚@KenS.,disease
只是我在本例中使用的占位符。事实上,它确实发生了变化。您可以使用stringr::str_to_title
将所有单词转换为大写字母开头是否总是以大写字母开头的单词Disease
?或者这些词可以改变吗?如果没有,我建议使用tolower()
,然后使用gsub(“疾病”,“疾病”,df$disease)
应该更清楚@KenS.,disease
只是我在本例中使用的占位符。事实上,它确实发生了变化。您可以使用stringr::str_to_title
将所有单词转换为大写字母开头只是为了澄清,BOS代表什么?字符串的开头。正如锚^
所示。为了澄清,BOS代表什么?字符串的开头。正如锚^
所示。