楼主: qwertyqwertu
4316 4

[问答] 【菜鸟提问】如何在自编函数中达到dplyr包的select函数的效果 [推广有奖]

  • 0关注
  • 0粉丝

高中生

70%

还不是VIP/贵宾

-

威望
0
论坛币
39 个
通用积分
28.3247
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
593 点
帖子
26
精华
0
在线时间
33 小时
注册时间
2017-12-16
最后登录
2024-7-9

楼主
qwertyqwertu 发表于 2017-12-16 13:33:56 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
select(data.frame, col.name)
中的col.name是不需要加引号的
如何在自编函数中做到这种事情?

  1. data=data.frame(v1=1:10,v2=10:1)
  2. f=function(data,col){
  3.     data$col
  4. }
  5. f(data,v1)
复制代码


> f(data,v1)
NULL


二维码

扫码加我 拉你入群

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

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

关键词:Select Elect dplyr ele ect

沙发
qwertyqwertu 发表于 2017-12-16 13:44:57
尝试了attach,也会出现问题

  1. f=function(data,col){
  2.     attach(data)
  3.     return(col)
  4. }

  5. data=data.frame(v1=1:10,v2=10:1)

  6. rm(v1)
  7. f(data,v1)

  8. v1=3
  9. f(data,v1)
复制代码

藤椅
屋檐滴语 发表于 2017-12-16 14:12:49
楼主研究精神值得学习。

板凳
阿扁V5 学生认证  发表于 2017-12-16 14:56:22 来自手机
厉害

报纸
qwertyqwertu 发表于 2017-12-16 15:55:19
找到了解决方法
  1. data=data.frame(v1=1:10,v2=10:1,v3=21:30)

  2. f=function(data,...){
  3.     a=match.call()

  4.     print(a);cat('\n----------\n')
  5.     print(as.list(a));cat('\n----------\n')

  6.     b=as.character(a[-c(1,2)])

  7.     print(b);cat('\n----------\n')

  8.     return(data[b])
  9. }


  10. f(data,v1,v2)

  11. f(data,v1)
复制代码

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

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