楼主: kaifengedu
10820 8

[问答] 关于within与transform的用法 [推广有奖]

  • 0关注
  • 18粉丝

已卖:641份资源

学科带头人

4%

还不是VIP/贵宾

-

威望
0
论坛币
1671 个
通用积分
475.1680
学术水平
85 点
热心指数
128 点
信用等级
60 点
经验
32847 点
帖子
913
精华
0
在线时间
1638 小时
注册时间
2010-2-2
最后登录
2025-12-27

楼主
kaifengedu 发表于 2013-7-31 09:03:46 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
各位好,有一些问题请慢慢看:
先写正确用法
  1. mydata <- data.frame(x1 = c(2, 2, 6, 4), x2 = c(3, 4, 2, 8))
  2. mydata <- transform(mydata, sumx = x1 + x2, meanx = (x1 + x2)/2)
  3. mydata <- within(mydata,{sumx = x1 + x2
  4.                          meanx = (x1 + x2)/2})
复制代码
上面用within和transform为数据框mydata添加两列sumx和meanx都是正确的.
问题是:
一、在within的帮助文件里说within can be used as an alternative to transform
这时我用
  1. mydata <- within(mydata,sumx = x1 + x2, meanx = (x1 + x2)/2)
复制代码
报错。
二、如果用
  1.   ydata <- transform(mydata, {sumx = x1 + x2
  2.                              meanx = (x1 + x2)/2})
复制代码
虽然不报错,但是出现不了两列sumx和meanx.

三、如果把within的代码写在一行
  1. mydata <- within(mydata,{sumx = x1 + x2 meanx = (x1 + x2)/2})
  2. [
复制代码
又会报错
四、因此想请教的是什么时间需要用逗号,隔开表达式,见transform语句
  1. mydata <- data.frame(x1 = c(2, 2, 6, 4), x2 = c(3, 4, 2, 8))
  2. mydata <- transform(mydata, sumx = x1 + x2, meanx = (x1 + x2)/2)
复制代码
什么时间需要用大括号并且令起一行隔开表达式
见within语句
  1. mydata <- data.frame(x1 = c(2, 2, 6, 4), x2 = c(3, 4, 2, 8))
  2. mydata <- within(mydata,{sumx = x1 + x2
  3.                          meanx = (x1 + x2)/2})
复制代码
谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:transform within Trans form With within

沙发
trier2006 发表于 2013-7-31 09:23:27
帮顶
最好的医生是自己,最好的药物是时间……

藤椅
淘宝网橙迷橙橙 发表于 2013-7-31 17:55:02
mydata <- data.frame(x1 = c(2, 2, 6, 4), x2 = c(3, 4, 2, 8))

mydata <- transform(mydata, sumx = x1 + x2, meanx = (x1 + x2)/2)

mydata <- within(mydata,{sumx = x1 + x2; meanx = (x1 + x2)/2})

板凳
kaifengedu 发表于 2013-8-2 09:10:37
淘宝网橙迷橙橙 发表于 2013-7-31 17:55
mydata
您这是什么意思呢,^_^

报纸
yukisuki 发表于 2016-7-28 14:25:09
within是什么函数啊

地板
yukisuki 发表于 2016-7-28 14:33:32
求大神讲解一下within和with,看不懂啊。。

7
风摆花狼藉 发表于 2016-11-8 17:34:55
r中一条语句占一行,如果两条语句公用一行,则中间用分号隔开。
用transform(数据框名,你自己对数据框的一系列修改),这些修改中间用逗号分隔,别跨行。
用within(数据框名,{修改1;修改2;修改3;......})或者within(数据框名,{修改1
                                                                                                      修改2})
within可以用于除数据框之外的对象,而transform只能用于数据框改变。

8
伊如影风 发表于 2017-4-12 16:26:57
yukisuki 发表于 2016-7-28 14:33
求大神讲解一下within和with,看不懂啊。。
within可以用来修改原来的数据框,with不行

9
higaozhijun 发表于 2017-5-23 20:10:44
风摆花狼藉 发表于 2016-11-8 17:34
r中一条语句占一行,如果两条语句公用一行,则中间用分号隔开。
用transform(数据框名,你自己对数据框的一 ...
说的很对

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-7 22:25