楼主: hopui2017
4349 4

[问答] R语言分组对多变量进行运算 [推广有奖]

  • 10关注
  • 3粉丝

已卖:80份资源

硕士生

10%

还不是VIP/贵宾

-

威望
0
论坛币
2638 个
通用积分
12.0605
学术水平
2 点
热心指数
2 点
信用等级
2 点
经验
598 点
帖子
61
精华
0
在线时间
143 小时
注册时间
2017-10-19
最后登录
2024-5-28

楼主
hopui2017 发表于 2019-1-10 11:03:29 |AI写论文
15论坛币
大家好,请教大家一个R语言基本数据处理的问题。如下图所示,我要根据no将数据分为N组,每组使用荧光标记的变量进行自编函数的运算,我查了一下aggregate()函数可以实现分组运算。但是aggregate( )函数只能调用含有单一变量的函数,比如sum.求和等。而我要计算的方程形式复杂,而且根据no要分成80多组,每组每组的算不太现实。有没有高手帮我解答一下。谢谢。
我要按照no每组计算
f(dbh,tht,bolt,dob)这个自编函数。
使用什么函数呢?谢谢

数据处理.JPG

最佳答案

fyc7346165 查看完整内容

by函数的作用是把第一个参数“数据框data[c("dbh", "tht", "bolt", "dob")]”按照list(data$no)分成了好几个数据框,然后对这几个数据框分别使用by的第三个参数“function(df)",所以这个函数中带入的df是一个包含dbh,tht,bolt,dob四列的数据框 你可以试一下应该就能明白了
关键词:R语言 多变量 Aggregate Gate 数据处理 R语言;R语言分组计算;自编函数;函数调用;循环语句

沙发
fyc7346165 发表于 2019-1-10 11:03:30
hopui2017 发表于 2019-1-10 14:31
您好,谢谢您的精彩回复。请问df是什么呢?具体怎么用呢?为什么不能function(dbh,tht,bolt,dob){ f (  ...
by函数的作用是把第一个参数“数据框data[c("dbh", "tht", "bolt", "dob")]”按照list(data$no)分成了好几个数据框,然后对这几个数据框分别使用by的第三个参数“function(df)",所以这个函数中带入的df是一个包含dbh,tht,bolt,dob四列的数据框

你可以试一下
  1. by(data[c("dbh", "tht", "bolt", "dob")], list(data$no), print)
复制代码
应该就能明白了
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 30 + 3 + 3 + 3 热心帮助其他会员

总评分: 论坛币 + 30  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

藤椅
fyc7346165 发表于 2019-1-10 11:51:01
  1. by(data[c("dbh", "tht", "bolt", "dob")], list(data$no),
  2.    function(df) {
  3.      f(df$dbh, df$tht, df$bolt, df$dob)
  4.    })
复制代码

板凳
hopui2017 发表于 2019-1-10 14:31:12
fyc7346165 发表于 2019-1-10 11:51
您好,谢谢您的精彩回复。请问df是什么呢?具体怎么用呢?为什么不能function(dbh,tht,bolt,dob){ f ( ) }呢?谢谢

报纸
meo620 发表于 2019-5-13 18:11:24
fyc7346165 发表于 2019-1-10 11:51
如果是分组之后做回归呢

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 11:29