![](/img/trans.png)
[英]Convert from lowercase to uppercase all values in all character variables in dataframe
[英]Convert all letters from uppercase to lowercase in a sentence except words with all CAPS using R
我想將我的文本數據框轉換為小寫字母,但我不想轉換所有大寫字母的單詞。 例如,如果有一個類似
“我的朋友是研究中的好東西”
這樣的輸出應該像
“我的朋友ENRIQUE學習不好”
它將所有帶有大寫字母的單詞轉換為小寫。 我需要ar函數來完成此任務。
您可以使用gsub
和(與perl兼容)正則表達式進行此操作。
gsub("(\\b\\w*[a-z]\\w*\\b)", "\\L\\1", String, perl=TRUE)
"my friend ENRIQUE is not good in studies"
放置\\\\b
單詞邊界可確保它對單獨的單詞起作用。 [az]
選擇包含至少一個小寫字母的單詞。 [az]
之前和之后的\\\\w*
匹配任何數量(包括零個)的“單詞字符”,即字母或數字。 替換模式中的\\\\L
轉換為小寫。
我們可以將字符串分成不同的單詞,然后找出包含任何小寫字母[az]
單詞,然后將該單詞轉換為小寫字母。
word_vec <- strsplit(x, " ")[[1]]
ifelse(grepl('[a-z]', word_vec), tolower(word_vec), word_vec)
#[1] "my" "friend" "ENRIQUE" "is" "not" "good" "in" "studies"
為了使它成為單個字符串,我們可以使用帶有空collapse
參數的paste0
。
paste0(ifelse(grepl('[a-z]', word_vec), tolower(word_vec), word_vec), collapse = " ")
#[1] "my friend ENRIQUE is not good in studies"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.