R:正常运作

时间:2015-05-01 12:28:33

标签: r capitalize

是"我的" DBTable工作正常吗?这是来自inside-r.org的测试用例,其结果是评论:

capitalize

这就是我得到的:

library(Hmisc)
words <- strsplit("Hello wOrld", " ")[[1]];
cat(paste(toupper(words), collapse=" "), "\n")      # "HELLO WORLD"
cat(paste(tolower(words), collapse=" "), "\n")      # "hello world"
cat(paste(capitalize(words), collapse=" "), "\n")   # "Hello WOrld"

另一个测试案例:

HELLO WORLD 
hello world 
Hello wOrld  #WRONG!!!

案例3再次出错。即如果在我的情况下> capitalize(c("Hello world", "hello world", "hello World")) [1] "Hello world" "Hello world" "hello World" 在字符串中的任何地方看到大写字母,它就无法正常工作。有什么想法吗?

更新。 capitalize

解决了问题
R.utils

2 个答案:

答案 0 :(得分:2)

您必须使用capitalize的小写字符串才能工作。除tolower之外,一个简单的解决方法是使用capitalize

capitalize(tolower(c("Hello world", "hello world", "hello World")))
## [1] "Hello world" "Hello world" "Hello world"

答案 1 :(得分:1)

我不确定你在追求什么,但这是我对你认为自己的追求。描述您的目标或提供所需的输出可能更好。这是一种正则表达式,只将首字母的第一个字母大写,并将每个单词大写。第一封信:

x <- c("Hello world", "hello world", "hello World", "test cAse")

sub("(\\w)(\\w*)", "\\U\\1\\E\\2", x, perl=TRUE) 
## [1] "Hello world" "Hello world" "Hello World" "Test cAse"

gsub("(\\w)(\\w*)", "\\U\\1\\E\\2", x, perl=TRUE) 
## [1] "Hello World" "Hello World" "Hello World" "Test CAse"