R语言数据处理:向量、字符串与因子操作
立即解锁
发布时间: 2025-08-22 00:58:32 阅读量: 3 订阅数: 11 


R语言编程与统计入门教程
# R语言数据处理:向量、字符串与因子操作
## 1. 向量操作练习
### 1.1 向量元素提取与筛选
首先,我们存储一个包含10个值的向量`foo`:
```R
foo <- c(7,5,6,1,2,10,8,3,8,2)
```
#### 提取大于等于5的元素
我们可以使用逻辑判断来提取`foo`中大于等于5的元素,并将结果存储为`bar`:
```R
bar <- foo[foo >= 5]
```
#### 显示剔除大于等于5的元素后的向量
可以通过取反的逻辑判断来显示剔除大于等于5的元素后的向量:
```R
foo[foo < 5]
```
### 1.2 矩阵构建与元素替换
#### 构建矩阵
使用`bar`构建一个2×3的矩阵`baz`,按行填充:
```R
baz <- matrix(bar, nrow = 2, byrow = TRUE)
```
#### 替换元素
将`baz`中等于8的元素替换为`baz`第一行第二列元素的平方:
```R
baz[baz == 8] <- baz[1, 2]^2
```
#### 确认元素范围
确认`baz`中所有值都小于等于25且大于4:
```R
all(baz <= 25 & baz > 4)
```
### 1.3 数组操作
#### 创建数组
使用包含18个值的向量创建一个3×2×3的数组`qux`:
```R
qux <- array(c(10,5,1,4,7,4,3,3,1,3,4,3,1,7,8,3,7,3), dim = c(3, 2, 3))
```
#### 识别元素位置
识别`qux`中值为3或4的元素的维度特定索引位置:
```R
which(qux %in% c(3, 4), arr.ind = TRUE)
```
#### 替换元素
将`qux`中小于3或大于等于7的元素替换为100:
```R
qux[qux < 3 | qux >= 7] <- 100
```
### 1.4 向量元素提取
使用向量`c(F, T)`提取`foo`中的每隔一个的值:
```R
foo[c(F, T)]
```
在某些情况下,可以用0和1替代TRUE和FALSE。但尝试使用向量`c(0, 1)`进行相同的提取时:
```R
foo[c(0, 1)]
```
R会返回`NA`,因为在这种情况下,0和1被视为索引,而不是逻辑值。
## 2. 字符处理
### 2.1 创建字符串
在R中,字符字符串用双引号表示。创建一个字符串只需在一对引号内输入文本:
```R
foo <- "This is a character string!"
```
R将字符串视为一个单独的实体,`length(foo)`返回1,因为它计算的是不同字符串的总数,而不是单个单词或字符。要计算单个字符的数量,可以使用`nchar`函数:
```R
nchar(foo)
```
几乎任何字符组合,包括数字,都可以是有效的字符字符串。但要注意,字符串形式的数字没有数值意义,例如:
```R
bar <- "23.3"
bar * 2
```
这会导致错误,因为`*`期望操作两个数值。
### 2.2 字符串比较
字符串可以通过多种方式进行比较,最常见的是检查相等性:
```R
"alpha" == "alpha"
"alpha" != "beta"
c("alpha", "beta", "gamma") == "beta"
```
其他关系运算符也能按预期工作,R认为字母表中靠后的字母大于靠前的字母,并且大写字母大于小写字母:
```R
"alpha" <= "beta"
"gamma" > "Alpha"
"Alpha" > "alpha"
"beta" >= "bEtA"
```
### 2.3 字符串拼接
有两个主要函数用于拼接字符串:`cat`和`paste`。`cat`将输出直接发送到控制台屏幕,不正式返回任何内容;`paste`拼接内容后返回最终的字符字符串作为可用的R对象。
```R
qux <- c("awesome", "R", "is")
cat(qux[2], qux[3], "totally", qux[1], "!")
paste(qux[2], qux[3], "totally", qux[1], "!")
```
这两个函数都有一个可选参数`sep`,用于在拼接字符串时作为分隔符:
```R
paste(qux[2], qux[3], "totally", qux[1], "!", sep = "---")
paste(qux[2], qux[3], "totally", qux[1], "!", sep = "")
```
### 2.4 转义序列
在字符串中,反斜杠`\`用于调用转义序列,它可以控制字符串的格式和间距。常见的转义序列如下表所示:
| 转义序列 | 结果 |
|
0
0
复制全文
相关推荐










