楼主: dyf480
28946 7

[问答] R语言如何将数据库中的表提取出几列组成新表?急求 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

初中生

19%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
76 点
帖子
6
精华
0
在线时间
10 小时
注册时间
2015-5-13
最后登录
2015-6-5

楼主
dyf480 发表于 2015-5-13 18:22:39 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我从数据库里导入了data表,想提取出里面的第107列,用line7=data[,107]的话,会报错“错误于data[, 107] : 类别为'closure'的对象不可以取子集” 请问有什么解决的办法没有,初学者,想问各位大神。在线等答案
二维码

扫码加我 拉你入群

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

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

关键词:R语言 数据库 closure Data sure 数据库 r语言入门 R语言新手问题

沙发
Cruochu 发表于 2015-5-13 18:51:08
subset()不行吗

藤椅
dyf480 发表于 2015-5-13 19:31:26
Cruochu 发表于 2015-5-13 18:51
subset()不行吗
我去试试看

板凳
dyf480 发表于 2015-5-13 19:39:00
Cruochu 发表于 2015-5-13 18:51
subset()不行吗
data13<-subset(data1,select=c("统计日期", "支付商品件数","支付买家数","支付金额"))
我想统计这四个列,但是提示
错误于`[.data.frame`(x, r, vars, drop = drop) : 选择了未定义的列

报纸
letsgoaway 发表于 2015-5-14 16:12:51
理论上来说,line7=data[,107]肯定可以的
很可能是你的数据的问题,你看一下你的数据类型以及结构的具体情况,再看一下107列是什么;
也可以试一下sqldf包,
library(sqldf)
sqldf("select 变量名 from data")

地板
deephilla 发表于 2016-11-1 00:50:01
data13<-subset(data1,select=c("统计日期", "支付商品件数","支付买家数","支付金额"))
这个好像不用引号,我也刚用这个subset进行拆分数据库,选择合适的变量 。

7
jameschin007 发表于 2016-11-1 10:36:08
已经从数据库导入了?你的意思是通过RODBC或者其他数据库包,已经把数据从数据库转成了dataframe?
如果这样,直接用sqldf包,  select 统计日期,支付宝商品  from data 。
或者 # select 1st and 5th thru 10th variables
newdata <- mydata[c(1,5:10)]



data13<-subset(data1,select=c("统计日期", "支付商品件数","支付买家数","支付金额"))
  这句的问题, 貌似中文列明支持不好。
运行下面语句
> dat <- data.frame(A=c(1,2),B=c(3,4),C=c(5,6),D=c(7,7),E=c(8,8),F=c(9,9))
>
> View(dat)
> View(dat)
> subset(dat, select=c("A", "B"))
  A B
1 1 3
2 2 4

运行到这里完全没有问题。



> data1=subset(dat1, select=c("A", "B"))
Error in subset(dat1, select = c("A", "B")) : object 'dat1' not found
把 dat 改成dat1, 报错,但不是你说的错误。

data1=subset(dat, select=c("a", "B"))
Error in `[.data.frame`(x, r, vars, drop = drop) :
  undefined columns selected
把 A 改成a  报错,报错和你说的错误一样。 显然是列的名字没有识别。 你看看是不是名字写错了或者对中文支持不好。你直接调用列的序号好了。 如 newdata <- mydata[c(1,5:10)]。或者改列名吧。

8
jameschin007 发表于 2016-11-1 10:43:05
你这样做当然不对了。
应该是这样
xxx= data.frame(data$A,data$B)

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

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