当前位置:   article > 正文

R语言----数据框data.frame()

R语言----数据框data.frame()

1.数据框的创建 data.frame()

cash=data.frame(company = c("A", "A", "B"), cash_flow = c(100, 200, 300), year = c(1, 3, 2))
或者:
company <- c("A", "A", "B")
cash_flow <- c(100, 200, 300)
year <- c(1, 3, 2)

cash=data.frame(company, cash_flow, year)
cash
运行结果:
    company cash_flow year
1       A       100    1
2       A       200    3
3       B       300    2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2. head()和tail()函数访问数据的首末行

head()
返回数据框的前几行。默认情况下是6。若要更改此,请使用 head(数据, n = ___)。

tail()
返回数据框的最后几行。默认情况下是6。若要更改此,请使用tail(数据, n = ___)。

str()
检查一个物体的结构。这个奇妙的函数将显示您传入的对象的数据类型(在这里是数据.框架),并列出每个列变量及其数据类型。

> head(cash,4)
  company cash_flow year
1       A      1000    1
2       A      4000    3
3       A       550    4
4       B      1500    1
> tail(cash,4)
  company cash_flow year
4       B      1500    1
5       B      1100    2
6       B       750    4
7       B      6000    5
> str(cash)
'data.frame':   7 obs. of  3 variables:
 $ company  : Factor w/ 2 levels "A","B": 1 1 1 2 2 2 2  
 $ cash_flow: num  1000 4000 550 1500 1100 750 6000
 $ year     : num  1 3 4 1 2 4 5

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  1. names函数,colnames函数给变量修改元素名称
> names(cash)[1:3] <- c('comp','cash','yr')
> cash
  comp cash yr
1    A 1000  1
2    A 4000  3
3    A  550  4
4    B 1500  1
5    B 1100  2
6    B  750  4
7    B 6000  5

> names(cash)[1] <-  c('company')
> cash
  company cash yr
1       A 1000  1
2       A 4000  3
3       A  550  4
4       B 1500  1
5       B 1100  2
6       B  750  4
7       B 6000  5

> colnames(cash) <- c('company','cash_flow','year')
> cash
  company cash_flow year
1       A      1000    1
2       A      4000    3
3       A       550    4
4       B      1500    1
5       B      1100    2
6       B       750    4
7       B      6000    5

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

4. 访问和子集化数据框

#(1)  [ ] 形式访问
> cash
  company cash_flow year
1       A      1000    1
2       A      4000    3
3       A       550    4
4       B      1500    1
5       B      1100    2
6       B       750    4
7       B      6000    5
> cash[1,]  #第一行
  company cash_flow year
1       A      1000    1
> cash[,1]  #第一列
[1] A A A B B B B
Levels: A B
> cash[,'company']
[1] A A A B B B B
Levels: A B

# step 1.使用[]提取cash中的第三行,第二列
cash[3,2]
# step 2.使用[]提取cash中的year的第五行
cash[5,'year']

#(2)$ 形式访问 
> cash$cash_flow  #访问cash_flow列  
[1] 1000 4000  550 1500 1100  750 6000
#他等价于
>cash[,"cash_flow"]
[1] 1000 4000  550 1500 1100  750 6000

#可以通过指定NULL来删除列。运行代码来删除company。
>cash$company <- NULL
>cash
  cash_flow year
1      1000    1
2      4000    3
3       550    4
4      1500    1
5      1100    2
6       750    4
7      6000    5

#(3) subset( )访问
> subset(cash, company == "A")
  company cash_flow year
1       A      1000    1
2       A      4000    3
3       A       550    4

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51

5. 增加新列

> # step 1.四分之一现金流添加到数据框
> cash$quarter_cash <- cash$cash_flow *1/4

> # step 2.双倍年数回收你的钱到数据框
> cash$double_year <- cash$year *2
> cash
  company cash_flow year quarter_cash double_year
1       A             1000    1        250.0           2
2       A             4000    3       1000.0           6
3       A               550    4        137.5           8
4       B             1500    1        375.0           2
5       B             1100    2        275.0           4
6       B               750    4        187.5           8
7       B             6000    5       1500.0          10

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/66094
推荐阅读
相关标签
  

闽ICP备14008679号