小编zku*_*rtz的帖子

尽管有弹出窗口,仍通过R从Internet下载文件

使用R从Internet下载文件很容易,并且以前已经解决过

我的问题是如何避免弹出消息似乎阻止我的下载执行。特别,

download.file(url = "https://www.chicagofed.org/applications/bhc_data/bhcdata_index.cfm?DYR=2012&DQIR=4", destfile = "data/test.zip")
Run Code Online (Sandbox Code Playgroud)

给了我一点垃圾文件,而不是如果您访问该网站并手动输入年份2012和季度将得到的18 MB所需文件4。我怀疑问题是,如您手动进行操作所看到的,弹出窗口会中断下载过程,询问是否保存文件或打开文件。有什么方法可以自动跳过弹出窗口(即通过download.file)?

r popup download

5
推荐指数
1
解决办法
1209
查看次数

制作带有行和列标题的图矩阵

使用该par(mfrow = c(m,n))命令,我可以轻松制作带有m行和n列的图矩阵。

在特殊情况下,地块中存在一种模式,即每列中的所有地块共享一个重要属性,而每行中的所有地块共享一个不同的重要属性。所有这些信息都可以单独包含在每个m*n地块的标题中,但这显然是重复的。

是否有一种方便的方法可以在这样的网格中附加列名(仅在图的顶行上方)和行名(仅在图的左列的左侧)?

迄今为止的最佳解决方案:使用该text()命令将文本放置在左右图之外。但这并不令人满意,因为它需要许多单独的命令和调整参数,例如srt = 90使文本在左边距垂直,并xpd = NApar().

plot r

5
推荐指数
1
解决办法
1767
查看次数

在C中,使用typedef指针是一种好的形式吗?

考虑以下C代码:

typedef char * MYCHAR;
MYCHAR x;
Run Code Online (Sandbox Code Playgroud)

我的理解是结果是x是"char"类型的指针.但是,如果x的声明远离typedef命令发生,则代码的人类读者不会立即知道x是指针.或者,可以使用

typedef char MYCHAR;
MYCHAR *x;
Run Code Online (Sandbox Code Playgroud)

哪个被认为是更好的形式?这不仅仅是风格问题吗?

c pointers typedef

4
推荐指数
2
解决办法
659
查看次数

选择单行矩阵作为矩阵

这一直困扰着我.考虑以下:

# Part A #
# Make a silly simple matrix with column names
x = matrix(1:4, ncol = 2)
colnames(x) = c("a","b")

# Part B #
# Pick out the first row of the matrix.  This is not a matrix, 
#   and the column names are no longer accessible by colnames()
y = x[1,]
y
is.matrix(y)
colnames(y)

# Part C #
# But here is what I want:
y = matrix(x[1,], nrow = 1, dimnames = list(c(), colnames(x)))
Run Code Online (Sandbox Code Playgroud)

有没有办法用更少的处理步骤或更少的代码来实现C部分?似乎应该有一个命令几乎 …

r matrix

4
推荐指数
1
解决办法
1467
查看次数

从"package :: function"形式的字符串中获取函数

已经讨论过如何从字符串中获取变量.实际上,get比如data.table功能:get("data.table")返回data.table.然而,

> get("data.table::data.table")
Error in get("data.table::data.table") : 
  object 'data.table::data.table' not found
Run Code Online (Sandbox Code Playgroud)

有没有办法保留对包名的引用?即,我不想简单地对"::"进行拆分并得到字符串的后半部分.

r

4
推荐指数
1
解决办法
40
查看次数

更改顶点边框的线型

有没有办法用R更改igraph图中顶点边界的线型?例如,我想用虚线而不是实线制作顶点。

更新:这是生成带有黑色边框的节点的示例代码。我想知道是否有办法使黑色边框成为黑色虚线边框(如标准 R 线图中的 'lty = 2'):

library('igraph')
NodeList = data.frame('AA', x = 1 ,y = 1)
EdgeList = data.frame(from = 'AA', to = 'AA')
xgraph = graph_from_data_frame(vertices = NodeList, 
                               d = EdgeList, directed = TRUE)
plot(xgraph, vertex.shape = 'circle',
     vertex.size = 100, rescale = FALSE)
Run Code Online (Sandbox Code Playgroud)

r igraph

4
推荐指数
1
解决办法
752
查看次数

删除第k个字段为"NA"的所有行

修复k,比如说k = 2.假设我们有一个文本文件,file.txt至少有k列,并且列由|符号分隔.如何file.txt通过删除第2列等于"NA"的每一行来清理?让我们说输出是针对的outfile.txt.

bash awk lines

3
推荐指数
1
解决办法
2148
查看次数

按 R 中的所有列对数据框进行排序

对于具有任意列数的任意矩阵或数据框x,我想这样做:

x=x[order(x[,1], x[,2], ..., x[,ncol(x)]),]
Run Code Online (Sandbox Code Playgroud)

也就是说,我想按第一列排序,然后按第二列排序,...,然后按最后一列排序。这里关于排序的扩展讨论似乎不包含解决方案。这是我的解决方案,它违反了fortune(106)

sortarray = function(x){
    k = ncol(x)
    com = paste("x = x[order(x[,", paste(1:k, collapse = "],x[,"), "]),]", sep = "")
    eval(parse(text = com))
    return(x)}

x = sortarray(x)
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常,但是没有更干净的方法吗?

编辑重复数据删除澄清: 这个问题与建议的重复问题有很大不同(至少对我来说)。上一个问题涉及您明确指定要排序的列的情况。就我而言,我希望自动选择列(特别是所有列),而不是必须在排序命令中键入每个列名称。下面的答案解决了我的问题,与上一个问题的任何答案不同。

r

3
推荐指数
1
解决办法
824
查看次数

从命令行下载.zip文件

我有点盲目地尝试了很多变化,curlwget尝试下载一些.zip文件.我尝试的第一件事是:

curl --klo ".\bhcdata#1.zip" "https://www.chicagofed.org/applications/bhc_data/bhcdata_create_output.cfm?DYR=2011&DQTR=[1-4]"
Run Code Online (Sandbox Code Playgroud)

上面的命令实际上是由芝加哥联邦储备银行提供的文档中提供,但它在我的Ubuntu机器上抛出了错误信息:curl: option --klo: is unknown.

有一种直截了当的方法吗?

为了弄清楚我正在尝试做什么: 芝加哥联邦储备银行网站允许您输入年份和季度,然后单击"下载数据文件",它会为您提供相应数据的.zip文件.我想为所有季度做这个,所以我需要一种方法来编写每个季度的命令,以便我可以循环它们.将[1-4]在本例以上命令会抓住所有四个季度的一年之内,但我会罚款只是在时间去四分之一,我尝试了更换1为好.我尝试过没有各种选项组合,但没有任何工作.

zip curl download

3
推荐指数
1
解决办法
1万
查看次数

在数据步骤中表达"PUT all variables"以导出SAS数据

目标:使用数据步骤将整个SAS数据集导出到制表符分隔的文本文件.

问题:在我能找到的每个例子中,例如这个,必须在PUT语句后面的数据步骤中指定每个变量. 是不是只有一个简单的方法来询问"所有"变量?

我已经尝试过使用PUT _ALL_,但是在输出的每一行中都包含变量名,而不是只输出值.

text export sas datastep

3
推荐指数
1
解决办法
1777
查看次数

sas输入写为yyyymmdd的宏日期

以下是我输入和使用日期作为宏变量的方法:

%let x = %SYSEVALF('01jan2012'd);
%put &x; *see the date as sas sees it;
%put %SYSFUNC(putn(&x,yymmn.)); *see the date as yyyymm;
Run Code Online (Sandbox Code Playgroud)

这很棒,但我已经厌倦了输入日期'01jan2012'd.在特殊情况下,我可能希望将日期作为宏变量传递y,其中y包含在表单中yyyymmdd,如下所示:

%let y = 20120101;
%let x = %SYSEVALF(&y);
Run Code Online (Sandbox Code Playgroud)

当然,这不起作用.因此,考虑到y,我应该怎么用,而不是%let x = %SYSEVALF(&y);x作为的SAS看到日期之日起宏变量?

sas sas-macro

2
推荐指数
1
解决办法
2056
查看次数

箭头操作员附近的额外括号

我正在尝试解码的程序包括以下行:

#define nn(sp)   ((sp)->nn)
Run Code Online (Sandbox Code Playgroud)

从上下文(未显示),我很确定'sp'是一个指向结构的指针,该结构包含'nn'作为其变量之一.

在表达式"((sp) - > nn)"中,内部括号是否可以用于任何可能的目的?如果没有,外围的括号可能也没有用处吗?

c pointers parentheses

0
推荐指数
1
解决办法
141
查看次数

标签 统计

r ×6

c ×2

download ×2

pointers ×2

sas ×2

awk ×1

bash ×1

curl ×1

datastep ×1

export ×1

igraph ×1

lines ×1

matrix ×1

parentheses ×1

plot ×1

popup ×1

sas-macro ×1

text ×1

typedef ×1

zip ×1