目录
数据的标准化
字符处理函数
①计算字符数量
②提取或替换一个字符向量中的子串
③另一种方式替换字符向量中的字符
④分割字符向量
⑤连接字符串
⑥大小写变换
⑦将连续型变量转换成因子
⑧绘图函数:将连续型变量X分割为n个区间
⑨连接对象函数
z <- mean(x, trim = 0.05, na.rm=TRUE)
则提供了截尾平均数,即丢弃了最大5%和最小5%的数据和所有缺失值后的算术平均数。
数据的标准化
默认情况下,函数scale()对矩阵或数据框的指定列进行均值为0、标准差为1的标准化:
newdata <- scale(mydata)
要对每一列进行任意均值和标准差的标准化,可以使用如下的代码:
newdata <- scale(mydata)*SD + M
其中的M是想要的均值,SD为想要的标准差。在非数值型的列上使用scale()函数将会报错。 要对指定列而不是整个矩阵或数据框进行标准化,你可以使用这样的代码:
newdata <- transform(mydata, myvar = scale(myvar)*10+50)
此句将变量myvar标准化为均值50、标准差为10的变量。
字符处理函数
字符处理函数可以从文本型数据中抽取信息。
①计算字符数量
#nchar(x)
x <- c("ab", "cde", "fghij")
length(x)返回值为 3
nchar(x[3])返回值为 5
②提取或替换一个字符向量中的子串
#substr(x, start, stop)
x <- "abcdef"
substr(x, 2, 4)返回值为"bcd"
substr(x, 2, 4) <- "22222"(x 将变成"a222ef")
③另一种方式替换字符向量中的字符
#sub(pattern, replacement, x, ignore.case=FALSE, fixed=FALSE)
在 x 中搜索 pattern,并以文本 replacement 将其替换。若 fixed=FALSE,则
pattern 为一个正则表达式。若 fixed=TRUE,则 pattern 为一个文本字符串。
sub("\\s",".","Hello There")返回值为 Hello.There。注意,"\s"是一个
用来查找空白的正则表达式;使用"\\s"而不用"\"的原因是,后者是 R 中的转义
字符
④分割字符向量
#strsplit(x, split, fixed=FALSE)
在 split 处分割字符向量 x 中的元素。若 fixed=FALSE,则 pattern 为一个正
则表达式。若 fixed=TRUE,则 pattern 为一个文本字符串
y <- strsplit("abc", "")将返回一个含有 1 个成分、3 个元素的列表,包含
的内容为"a" "b" "c"
⑤连接字符串
#paste(…, sep="")
连接字符串,分隔符为 sep
paste("x", 1:3,sep="")返回值为 c("x1", "x2", "x3")
paste("x",1:3,sep="M")返回值为 c("xM1","xM2" "xM3")
paste("Today is", date())返回值为 Today is Thu Jun 25 14:17:32 2011
⑥大小写变换
#大写变换toupper(x)
toupper("abc")返回值为"ABC"
#小写变换tolower(x)
tolower("ABC")返回值为"abc"
⑦将连续型变量转换成因子
#cut(x, n)
将连续型变量 x 分割为有着 n 个水平的因子
使用选项 ordered_result = TRUE 以创建一个有序型因子
⑧绘图函数:将连续型变量X分割为n个区间
#pretty(x, n)
创建美观的分割点。通过选取 n+1 个等间距的取整值,将一个连续型变量 x分割为 n 个区间。绘图中常用
⑨连接对象函数
#cat(... , file ="myfile", append =FALSE) 连接...中的对象
\n表示新行,\t为制表符,\' 为单引号,\b为退格,等等。(键入?Quotes以了解更多。)
请注意第二行缩进了一个空格。当cat输出连接后的对象时,它会将每一个对象都用空格分 开。这就是在句号之前使用退格转义字符(\b)的原因。不然,生成的结果将是“Hello Bob .”。
参考资料:R语言实战(第二版)