R统计笔记(五):数据对象之间的转换

习惯了语法严谨的高级语言,例如Java、Javascript,切换到R语言,理解其数据对象之间的转换绝不是件容易的事。

在R语言中,向量是最基本的原子类型,不能通过$表达式获取相关属性,否则将出现以下错误:

Error in xs$levels : $ operator is invalid for atomic vectors

1. 因子与向量互转

weekdays <- c('星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日')
# 向量转换为因子
xs <- factor(weekdays,
             levels = c('星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'))

因子是有强烈的顺序特性的,如果通过c()方法直接抓取,将会返回序数向量。

#   直接转换
>  c(xs)
[1] 1 2 3 4 5 6 7

# 通过转换函数切换
> as.vector(xs)
# 返回原始因子信息
[1] "星期一" "星期二" "星期三" "星期四" "星期五" "星期六" "星期日"

2. 向量转换为矩阵(matrix)

#  再声明一个向量
ys <- c(5, 7, 8, 3, 2, 1, 10)
#  将多个向量合并为矩阵
#   首先合并向量
y4 <- c(as.vector(xs), ys)
#   设置行与列
dim(y4) <- c(7, 2)
#   输出y4
> y4
   [,1] [,2]
[1,] "一" "5" 
[2,] "二" "7" 
[3,] "三" "8" 
[4,] "四" "3" 
[5,] "五" "2" 
[6,] "六" "1" 
[7,] "日" "10"

3. 提取矩阵中的某一列向量

#   提取第一列
> y4[1:7]
#   提取第二列
> y4[8:14]

当然也可以获取矩阵动态信息,如下:

#   获取矩阵总长度
> length(y4)
[1] 14
#   获取矩阵列数
> length(dim(y4))
[1] 2

4. 用索引提取List

#  结果为List
salary <- read.table('graph/weekday.csv',
                     header = TRUE,
                     sep = ',',
                     quote = '\"')
## 利用索引提取List信息
xSeries <- salary["日期"]
ySeries <- salary["事件数量"]

> attributes(salary)
$names
[1] "日期"     "事件数量" "浪费金额"

$class
[1] "data.frame"

$row.names
[1] 1 2 3 4 5 6 7

结论

熟练操作数据对象是学好R语言的基础,其中向量是最基本的原子,不知道怎么转换时,将其转换为向量准没错,然后再对其进行需要的合并与转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值