由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 问一个R的问题
相关主题
SAS 求助: filenames再问几个R的问题。
SAS help needed, how to downloading filesSAS log window full,跪求解决方法
sas emailSAS: automatically generate xls file with updated date
请教SAS问题:这个code有什么办法简化吗?从yahoo finance下载数据,R or Python?
SAS问题请教How to work on this dataset?
一个R的问题请教一个base 123的问题,先谢谢大家了!!
Need urgent helps: How to use DDE to import password-protected excel file into SAS?请VBA牛人现身。
求教SAS问题sas 简单问题
相关话题的讨论汇总
话题: sourcelink话题: filenames话题: dirs话题: files话题: filename
进入Statistics版参与讨论
1 (共1页)
c***z
发帖数: 6348
1
R怎么在网址下载整个folder?
比如说这个:
ftp://ftp.bls.gov/pub/special.requests/cew/2011/
我知道的是download.file(),可是只能一个文件一个文件的下
谢各位大牛!
r**s
发帖数: 17
2
不能去命令行吗

【在 c***z 的大作中提到】
: R怎么在网址下载整个folder?
: 比如说这个:
: ftp://ftp.bls.gov/pub/special.requests/cew/2011/
: 我知道的是download.file(),可是只能一个文件一个文件的下
: 谢各位大牛!

c***z
发帖数: 6348
3
能详解一下么
我倒是找到了一个法子
首先列出目录下的文件和子目录,文件直接下载,子目录调用本函数(递归)
但是下载下来的文件大小不对,大侠能帮忙看看么
library("RCurl")
# ==========================================================================
====
# Function that downloads files from URL
# ==========================================================================
====
fdownload <- function(sourcelink) {
# sourcelink <- ftp.root # test, root level
# sourcelink <- dirs[1] # test, second level
targetlink <- paste(dropbox.root, substr(sourcelink, nchar(ftp.root)+1,
nchar(sourcelink)), sep = '')

# list of contents
filenames <- getURL(sourcelink, ftp.use.epsv = FALSE, dirlistonly = TRUE)
filenames <- strsplit(filenames, "\n")
filenames <- unlist(filenames)

files <- filenames[grep('\\.', filenames)]
dirs <- setdiff(filenames, files)
if (length(dirs) != 0) {
dirs <- paste(sourcelink, dirs, '/', sep = '')
}

# files
curl <- getCurlHandle()
for (filename in files) {
# filename <- files[1]
targetfile <- paste(targetlink, filename, sep = '')
filename <- paste(sourcelink, filename, sep = '')
content <- getURLContent(filename, curl = curl)
attributes(content) <- NULL
error <- writeBin(content, targetfile)
cat(error, '\n')
}

# subfolders
for (dirname in dirs) {
# dirname <- dirs[1]
fdownload(dirname)
}
}
c***z
发帖数: 6348
4
ftp.root是要下载的ftp
dropbox.root是存放文件的地址

==
==

【在 c***z 的大作中提到】
: 能详解一下么
: 我倒是找到了一个法子
: 首先列出目录下的文件和子目录,文件直接下载,子目录调用本函数(递归)
: 但是下载下来的文件大小不对,大侠能帮忙看看么
: library("RCurl")
: # ==========================================================================
: ====
: # Function that downloads files from URL
: # ==========================================================================
: ====

c***z
发帖数: 6348
5
I got a working version now:
#=====================================================================
# Function that downloads files from URL
#=====================================================================
fdownload <- function(sourcelink) {
# sourcelink <- ftp.root # test, root level
# sourcelink <- dirs[1] # test, second level
targetlink <- paste(dropbox.root, substr(sourcelink, nchar(ftp.root)+1,
nchar(sourcelink)), sep = '')

# list of contents
filenames <- getURL(sourcelink, ftp.use.epsv = FALSE, dirlistonly = TRUE)
filenames <- strsplit(filenames, "\n")
filenames <- unlist(filenames)

files <- filenames[grep('\\.', filenames)]
dirs <- setdiff(filenames, files)
if (length(dirs) != 0) {
dirs <- paste(sourcelink, dirs, '/', sep = '')
}

# files
for (filename in files) {
# filename <- files[1]
sourcefile <- paste(sourcelink, filename, sep = '')
targetfile <- paste(targetlink, filename, sep = '')

download.file(sourcefile, targetfile)
}

# subfolders
for (dirname in dirs) {
# dirname <- dirs[1]
fdownload(dirname)
}
}
1 (共1页)
进入Statistics版参与讨论
相关主题
sas 简单问题SAS问题请教
sas and environmental variables一个R的问题
help: proc logisticNeed urgent helps: How to use DDE to import password-protected excel file into SAS?
请教一个R的问题求教SAS问题
SAS 求助: filenames再问几个R的问题。
SAS help needed, how to downloading filesSAS log window full,跪求解决方法
sas emailSAS: automatically generate xls file with updated date
请教SAS问题:这个code有什么办法简化吗?从yahoo finance下载数据,R or Python?
相关话题的讨论汇总
话题: sourcelink话题: filenames话题: dirs话题: files话题: filename