《R语言与农业数据统计分析及建模》学习——操作数据框

1、数据框的增删改查

(1)新增或删除行列

        R的基础包中使用rbind()函数新增行,使用[-行索引,]的方式从数据框中删除列,使用$的方式新增或删除列。

# 创建一个示例数据框
df<-data.frame(
  Region=c("south","north","east"),
  crop=c("maize","wheat","rice"),
  yield=c(4500,3900,2700)
)
new_row=c('west','soybean',1700)

# 新增一行
df<-rbind(df,new_row)
print(df)

# 删除第2行
df<-df[-2,]
print(df)

# 新增一列
df$area<-c(85,92,78)
print(df)

# 删除列
df$crop<-NULL
print(df)

(2)修改数据

        要修改数据框中的数据,可以使用行列索引或列名索引的方式来定位要修改的数据,并赋予新的执行。

# 创建一个示例数据框
df<-data.frame(
  Name=c("Alice","Bob","Charlie"),
  Age=c(25,30,22),
  Gender=c("Female","Male","Male"),
  Score=c(85,92,78)
)
print(df)

# 修改数据框中的数据
df[2,"Age"]<-31
df$Score[3]<-80

# 显示数据框
print(df)

2、数据框的合并和拆分

(1)按行合并数据框

        R语言中,使用rbind()函数按行合并数据框

# 创建示例数据框1
df1<-data.frame(
  region=c("A","B","C"),
  yield=c(25,30,22)
)

# 创建示例数据框2
df2<-data.frame(
  region=c("D","E"),
  yield=c(28,27)
)

# 按行合并数据框
merged_df<-rbind(df1,df2)
print(merged_df)

(2)按列合并数据框

        R语言中,使用cbind()函数按行合并数据框

# 创建示例数据框1
df1<-data.frame(
  region=c('A','B','C'),
  crop=c('maize','wheat','rice')
)

# 创建示例数据框2
df2<-data.frame(
  yield=c(4500,3900,2700),
  area=c(85,92,78)
)

# 按列合并数据框
merged_df<-cbind(df1,df2)
print(merged_df)

(3)拆分数据框

        使用split()函数根据数据框中选定列的不同取值将数据框拆分为多个子数据框。

# 创建示例数据框
df<-data.frame(
  Region=c('North','North','South','South','North','South'),
  Crop=c('Wheat','Rice','Corn','Wheat','Rice','Corn'),
  Production=c(50000,80000,70000,55000,85000,72000),
  Area=c(10000,12000,15000,11000,13000,16000)
)

# 拆分数据框为多个子数据框,按照Region列的不同取值拆分
sub_dfs<-split(df,df$Region)
print(sub_dfs)

3、数据框的排序和重塑

        使用order()函数按照数据框中选定列的数据大小对数据框进行排序。

# 创建示例数据框
df<-data.frame(
  Region=c('North','North','South','South','North','South'),
  Crop=c('Wheat','Rice','Corn','Wheat','Rice','Corn'),
  Production=c(50000,80000,70000,55000,85000,72000),
  Area=c(10000,12000,15000,11000,13000,16000)
)

# 按照Region列对数据框进行升序排序
sorted_df<-df[order(df$Region),]
print(sorted_df)

        使用melt()函数将数据框转换为长格式

# 创建示例数据框
df<-data.frame(
  Region=c('North','North','South','South','North','South'),
  Crop=c('Wheat','Rice','Corn','Wheat','Rice','Corn'),
  Production=c(50000,80000,70000,55000,85000,72000),
  Area=c(10000,12000,15000,11000,13000,16000)
)

# 将数据框转换为长格式
melted_df<-melt(df,id.vars='Region')
print(melted_df)

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值