楼主: yue86231
15234 14

[问答] with(...) 和 函数 attach( )功能是一样的吗? [推广有奖]

  • 1关注
  • 4粉丝

硕士生

17%

还不是VIP/贵宾

-

威望
0
论坛币
26 个
通用积分
0.0146
学术水平
1 点
热心指数
0 点
信用等级
0 点
经验
2417 点
帖子
114
精华
0
在线时间
131 小时
注册时间
2013-10-18
最后登录
2016-4-1

楼主
yue86231 学生认证  发表于 2014-12-24 00:57:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我知道用attach()这个函数,后面输入变量R就自动从attach的数据框里找了,
今天看到table()函数,函数如下:

  1. mytable<-with(Arthritis, table(Improved))
复制代码


这里不明白是,With()也是个函数吗?函数里头再套一个table()函数吗?

我理解的是with()也是个函数,函数功能是
Evaluate an R expression in an environment constructed from data, possibly modifying (a copy of) the original data.
但这个evaluate, “评定一个表达”,这怎么评定?



二维码

扫码加我 拉你入群

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

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

关键词:attach With ATT Table ABLE

liuyueanna.wordpress.com

沙发
gdufsfit 学生认证  发表于 2014-12-24 09:39:12
意思是得到一个表达式的值

藤椅
jianhui80 学生认证  发表于 2014-12-24 09:46:11
with()更多的是批处理,比如我想把数据输出多个回归。那么expr就大有发挥余地。attach()只是把数据绑定,可以直接用数据对象下的变量名。比如不绑定的话,我们可能会使用
  1. plot(data$age,data$score)
复制代码

,但是绑定以后就可以直接
  1. plot(age,score)
复制代码

已有 1 人评分论坛币 收起 理由
李会超 + 5 热心帮助其他会员

总评分: 论坛币 + 5   查看全部评分

板凳
yue86231 学生认证  发表于 2014-12-24 17:35:18
jianhui80 发表于 2014-12-24 09:46
with()更多的是批处理,比如我想把数据输出多个回归。那么expr就大有发挥余地。attach()只是把数据绑定,可 ...
感谢回复! attach我明白了,with还是没太明白

with()更多的是批处理,比如我想把数据输出多个回归。那么expr就大有发挥余地

批处理的意思是
一个数据框,多个运算吗?

比如我有一个数据框,又想做回归,又想做相关,那么写
  1. with (mydata, (
  2.    myreg <-  .............
  3.    mycor<- ..........
  4.    myreg
  5.    mycor))
复制代码
就可以了?

那attach也可以写成这样啊
  1. attach(mydata)
  2. myreg<-...
  3. mycor<-....
  4. myreg
  5. mycor
复制代码
我还是没有明白两者的区别,尤其是with()的作用

报纸
淘宝网橙迷橙橙 发表于 2014-12-27 22:56:07
attach方便是方便,但是,当你数据框中的列与内存中已有的对象同名时,就会产生冲突,从而得到意想不到的结果。因此,attach后必接detach。
用with,则是封闭在数据框的环境中进行运算,不会与外在环境中的对象相冲突,因此,没有以上的隐患。

地板
yue86231 学生认证  发表于 2014-12-30 01:48:11
淘宝网橙迷橙橙 发表于 2014-12-27 22:56
attach方便是方便,但是,当你数据框中的列与内存中已有的对象同名时,就会产生冲突,从而得到意想不到的结 ...
我明白了,非常感谢!(解释超清楚)

7
Frances_T 发表于 2015-12-7 20:47:10
谢谢解惑,帮助到了我

8
yangming98 发表于 2015-12-12 00:31:56 来自手机
yue86231 发表于 2014-12-24 00:57
我知道用attach()这个函数,后面输入变量R就自动从attach的数据框里找了,
今天看到table()函数,函数如下 ...
好的?

9
鸟儿找虫吃 发表于 2016-7-20 17:17:24
为什么写成一行就执行就出错了。with(mtcars,{print(summary(mpg))plot(mpg,disp)plot(mpg,wt)})
提示:错误: unexpected symbol in "with(mtcars,{print(summary(mpg))plot"

当写成 with(mtcars,{
+ print(summary(mpg))
+ plot(mpg,disp)
+ plop(mpg,wt)
+ })
这样就可以执行


两者语句不是一样的吗

10
鸟儿找虫吃 发表于 2016-7-20 17:18:02
jianhui80 发表于 2014-12-24 09:46
with()更多的是批处理,比如我想把数据输出多个回归。那么expr就大有发挥余地。attach()只是把数据绑定,可 ...
为什么写成一行就执行就出错了。with(mtcars,{print(summary(mpg))plot(mpg,disp)plot(mpg,wt)})
提示:错误: unexpected symbol in "with(mtcars,{print(summary(mpg))plot"

当写成 with(mtcars,{
+ print(summary(mpg))
+ plot(mpg,disp)
+ plop(mpg,wt)
+ })
这样就可以执行


两者语句不是一样的吗

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

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