我是靠谱客的博主 谦让小松鼠,最近开发中收集的这篇文章主要介绍《R语言经典示例》学习笔记(三),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

添加行至数据框

问题:
有时需要给数据框添加一行或者更多新行
结局方案:
创建第二个包含这些新行的临时数据框,然后调用rbind()函数将这个临时数据框添加到原始数据框后面:

> b
city country state
pop
1 Chicago
Cook
IL 2853144
2 Kenosha Kenosha
WI
90352
3
Aurora
Kane
IL
171782
4
Elgin
Lake
IL
94487
> newRow<-data.frame(city="Cicero",country="Cook",state="IL",pop=72616)
> newb<-rbind(b,newRow)
> newb
city country state
pop
1 Chicago
Cook
IL 2853144
2 Kenosha Kenosha
WI
90352
3
Aurora
Kane
IL
171782
4
Elgin
Lake
IL
94487
5
Cicero
Cook
IL
72616

选定数据框的列

  • 根据列名

    • dfrm[[“name”]]
    • dfrm$name
    • drrm[“name”]
    • dfrm[c(“name1”,”name2”)]
    • dfrm[,”name”]
    • dfrm[c(“name1”,”name2”)]
  • 根据subset()函数

    • subset(dfrm,select=colname)
    • subset(dfrm,select=c(colname1,colname2))
    • subset(dfrm,subset=(response>0))其中response是数据框的一列,选择出response为正的行
> newb
city country state
pop
1 Chicago
Cook
IL 2853144
2 Kenosha Kenosha
WI
90352
3
Aurora
Kane
IL
171782
4
Elgin
Lake
IL
94487
5
Cicero
Cook
IL
72616
> subset(newb,select=pop)
pop
1 2853144
2
90352
3
171782
4
94487
5
72616
> subset(newb,select=pop,subset=(pop>171782))
pop
1 2853144

修改数据框的列名

  • colnames(dfrm)<-newnames
> colnames(newb)<-c("ncity","ncountry","nstate","npop")
> newb
ncity ncountry nstate
npop
1 Chicago
Cook
IL 2853144
2 Kenosha
Kenosha
WI
90352
3
Aurora
Kane
IL
171782
4
Elgin
Lake
IL
94487
5
Cicero
Cook
IL
72616

根据名称排除列

  • 调用包含一个select参数值为负值的subset()函数:
    subset(dfrm,select=-badboy)
> newb
ncity ncountry nstate
npop
1 Chicago
Cook
IL 2853144
2 Kenosha
Kenosha
WI
90352
3
Aurora
Kane
IL
171782
4
Elgin
Lake
IL
94487
5
Cicero
Cook
IL
72616
> subset(newb,select=c(-ncity,-ncountry))
nstate
npop
1
IL 2853144
2
WI
90352
3
IL
171782
4
IL
94487
5
IL
72616

合并两个数据框

  • new<-cbind(dfrm1,dfrm2)
  • new<-rbind(dfrm1,dfrm2)

根据共有列合并数据框

问题:
有两个数据框,有相同的列,也有不同的列。需要通过匹配共有列来合并它们的行,使之成为一个数据框。
解决方案:
调用merge()函数,基于共有列把这些数据框连接成一个新的数据框:
m<-merge(df1,df2,by=”name”)其中name是数据框共有的列名。

> born
name year.born place.born
1
Moe
1887
a
2 Larry
1902
b
3 Curly
1903
c
4 Harry
1964
d
> died
name year.died
1 Curly
1952
2
Moe
1975
3 Larry
1975
> merge(born,died,by="name")
name year.born place.born year.died
1 Curly
1903
c
1952
2 Larry
1902
b
1975
3
Moe
1887
a
1975

基本数据类型之间的转换

  • as.character()
  • as.complex()
  • as.numberic()或者as.double()
  • as.integer()
  • as.logical()

不同结构化数据类型间的转换

  • as.data.frame()
  • as.list()
  • as.matrix()
  • as.vector()

最后

以上就是谦让小松鼠为你收集整理的《R语言经典示例》学习笔记(三)的全部内容,希望文章能够帮你解决《R语言经典示例》学习笔记(三)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部