楼主: 跳蚤侠
5191 3

[问答] 请教:想要得到一个data.frame,在循环开始时确定行列数,循环过程中向里面增加内容 [推广有奖]

  • 2关注
  • 0粉丝

硕士生

30%

还不是VIP/贵宾

-

威望
0
论坛币
448 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
967 点
帖子
62
精华
0
在线时间
159 小时
注册时间
2010-4-23
最后登录
2025-1-18

楼主
跳蚤侠 发表于 2015-2-6 12:34:25 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教:想要得到一个data.frame,在循环开始时确定行列数,然后循环过程中向里面增加内容,等到循环完毕刚好填完。
f<-function(directory,id=1:332){
  files_list<-list.files(directory,full.names=T)
  row_count<-length(id)
  dat<-data.frame(matrix(NA,row_count,2))
  colnames(dat)<-c("id","nobs")
  for (i in id){
    dat<-read.csv(files_list[i])
  m<-na.omit(dat)
u<-data.frame(id=i,nobs=nrow(m)))
  }
u

}
这是我的程序,如果id为一个数字的话可以运行,要是id=23:45这种的话,就不能一一展示了
二维码

扫码加我 拉你入群

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

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

关键词:Frame Fram Data FRA RAM function matrix 程序

沙发
yywan0913 在职认证  发表于 2015-2-6 13:14:18
  1. f <- function(directory, id = 1:332){
  2.      files_list <- list.files(directory, full.names=T)
  3.      if(length(id) > length(files_list)) stop("id is too large")
  4.      row_count  <- length(id)
  5.      dat <- data.frame(matrix(NA, row_count, 2))
  6.      colnames(dat) <- c("id", "nobs")
  7.      u <- NULL
  8.      for (i in id){
  9.          dat <- read.table(files_list[i])
  10.          m   <- na.omit(dat)
  11.          u   <- rbind(u, data.frame(id=i, nobs=nrow(m)))
  12.      }
  13.      u
  14. }
复制代码

藤椅
跳蚤侠 发表于 2015-2-6 13:26:57
yywan0913 发表于 2015-2-6 13:14
太感谢了!

板凳
yywan0913 在职认证  发表于 2015-2-6 13:36:37
跳蚤侠 发表于 2015-2-6 13:26
太感谢了!
  1. f <- function(directory, id = 1:332){
  2.      files_list <- list.files(directory, full.names=T)
  3.      if(length(id) > length(files_list)) stop("id is too large")
  4.      row_count  <- length(id)
  5.      #dat <- data.frame(matrix(NA, row_count, 2))
  6.      #colnames(dat) <- c("id", "nobs")
  7.      u <- NULL
  8.      for (i in id){
  9.          dat <- read.table(files_list[i])
  10.          m   <- na.omit(dat)
  11.          u   <- rbind(u, data.frame(id=i, nobs=nrow(m)))
  12.      }
  13.      u
  14. }
复制代码
#号的两句其实没什么作用的,不需要事先知道它有多少行的

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

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