这很简单,但我已经搜索并未能找到解决这个小问题的方法。
我想使用函数的参数作为新数据框的名称,例如:
assign.dataset<-function(dataname){
x<-c(1,2,3)
y<-c(3,4,5)
dataname<<-rbind(x,y)
}
Run Code Online (Sandbox Code Playgroud)
然后
assign.dataset(new.dataframe.name)
Run Code Online (Sandbox Code Playgroud)
只需创建一个名为dataname的新数据集。
我曾尝试使用粘贴和分配功能,但没有成功。
非常感谢
使用 RStudio 和 Rmarkdown 时,我无法生成横向文档。
R 是 3.4.2 版 RStudio 是 0.98.1103 版
我无法更改这些,因为它们是我运行程序的集群上的最新版本。
编织文件后,我确实得到了一个文件(以纵向形式),但是收到以下错误消息:
Output created: test_landscape.docx
Warning message:
In (function (toc = FALSE, toc_depth = 3, fig_width = 5, fig_height = 4, :
table of contents for word_document requires pandoc >= 1.14
Run Code Online (Sandbox Code Playgroud)
可重现的代码在这里:
---
title: "test_landscape"
author: "Name"
date: "09/10/2018"
output: word_document
classoption: landscape
---
Test for landscape orientation
```{r}
summary(cars)
```
You can also embed plots, for example:
```{r, echo=FALSE}
plot(cars)
```
Note that the `echo = …Run Code Online (Sandbox Code Playgroud) 这是一个玩具示例,以帮助解决我遇到的更大问题.它主要涉及在引用更大的宏变量名时使用%eval()宏.
我创建了一个宏变量x_2,它使用循环的值'&it',变量被成功创建,如最终输出所示,但是我只能将它放到日志中而不评估&it + 1,使用大于1的循环时我需要做.
它似乎首先解决x_,发出警告,然后再评估x_2作为一个整体并给出输出.
我意识到这只是一个关于如何正确引用宏的问题,但我找不到任何使用评估作为宏变量名称的一部分的示例.
谢谢.
%macro testing;
%DO it = 1 %TO 1;
data dataset;
s=100;
t=99;
run;
data _null_;
set dataset;
if s = 100 then do;
call symput("x_%eval(&it+1)",t);
end;
run;
%put "&x_%eval(&it+1)";
%put &x_2;
%END;
%mend testing;
%testing;
Run Code Online (Sandbox Code Playgroud)
日志输出
MLOGIC(TESTING): %PUT "&x_%eval(&it+1)"
WARNING: Apparent symbolic reference X_ not resolved.
SYMBOLGEN: Macro variable IT resolves to 1
SYMBOLGEN: Macro variable X_2 resolves to 99
" 99"
MLOGIC(TESTING): %PUT &x_2
SYMBOLGEN: Macro variable X_2 resolves to 99
99 …Run Code Online (Sandbox Code Playgroud) assign ×1
dataframe ×1
eval ×1
landscape ×1
macros ×1
orientation ×1
r ×1
r-markdown ×1
sas ×1
variables ×1