楼主: xiaoliang0716
1068 5

[问答] 请教一个数据处理的程序,谢谢! [推广有奖]

  • 2关注
  • 0粉丝

博士生

86%

还不是VIP/贵宾

-

威望
0
论坛币
32 个
通用积分
3.0007
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
156112 点
帖子
138
精华
0
在线时间
612 小时
注册时间
2008-11-7
最后登录
2024-10-30

楼主
xiaoliang0716 发表于 2013-9-30 04:15:19 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
大家好:


最近在处理一些数据,如果某行中含有某个数字的,需要将整行数据提取出来。因此写了下面的语句去执行,可能是因为数据量大,所以运行时间巨长。请问有什么可以改进的么?

谢谢!


data <- read.table("N")

AH_1 <- matrix(numeric(0), 0,0)

for (i in 1:length(data)){

  if (data[i,1] == N){
     AH_1 <- rbind(AH_1,data[i,])}
}






二维码

扫码加我 拉你入群

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

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

关键词:数据处理 Data 数据提取 运行时间 大家好 matrix 程序 数据分析专题 数据处理 数据分析软件 数据分析报告 面板数据分析 excel数据分析 数据分析方法 项目数据分析

沙发
ywh19860616 发表于 2013-9-30 06:38:26
如果知道AH_1的大小,那么可以先定义好。之后往里面放即可。
不要利用rbind这样,这个很耗时间。
一份耕耘,一份收获。

藤椅
xiaoliang0716 发表于 2013-9-30 06:51:29
ywh19860616 发表于 2013-9-30 06:38
如果知道AH_1的大小,那么可以先定义好。之后往里面放即可。
不要利用rbind这样,这个很耗时间。
谢谢回复 问题解决

data <- read.table("N")

AH_1 <- matrix(numeric(0),0,0)

AH_1 <- rbind(AH_1,data)[as.vector(data[,1]==N),]

这样避免使用loop,提高效率了。 {:2_31:}

板凳
ywh19860616 发表于 2013-9-30 08:32:09
xiaoliang0716 发表于 2013-9-30 06:51
谢谢回复 问题解决

data
> system.time({
+     a <- NULL
+     for(i in 1:1e5)a <- i
+ })
   user  system elapsed
  22.24    0.71   23.09


> system.time({
+     a <- rep(1, 1e5)

+    for(i in 1:1e5)a <- i
+ })
   user  system elapsed
   0.24    0.00    0.23
>

一份耕耘,一份收获。

报纸
ntsean 发表于 2013-9-30 09:39:38
直接subset原数据不是更简单?
只需要建立一个indicator,看每一行是不是含有你那个数字

地板
xiaoliang0716 发表于 2013-9-30 19:53:58
ntsean 发表于 2013-9-30 09:39
直接subset原数据不是更简单?
只需要建立一个indicator,看每一行是不是含有你那个数字
谢谢回复,我试试看看!

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

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