我试图通过命令行调用R运行分析,如下所示:
R --no-save < SampleProgram.R > SampleProgram.opt
Run Code Online (Sandbox Code Playgroud)
例如,考虑下面的简单R程序:
mydata = read.csv("test.txt", header=T)
attach(mydata)
summary(Variable1)
q()
Run Code Online (Sandbox Code Playgroud)
输出显示在SampleProgram.opt中(仅部分显示):
> mydata = read.csv("test.txt", header=T)
> attach(mydata)
> summary(Variable1)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.00 1.00 2.00 2.47 3.00 4.00
> q()
Run Code Online (Sandbox Code Playgroud)
这个简单的R程序将由需要使用为Variable1显示的摘要统计信息的脚本执行.
问题是:R中是否有任何方法可以捕获摘要(Variable1)的输出并将结果写入输出文件?换句话说,我需要R来运行Variable1的摘要统计信息,捕获"Min","Median"和"Max"值,并将它们单独写入输出文本文件.在此示例中,输出文件应仅包含一行,其值为"1.00,2.00,4.00"(即"最小","中值"和"最大"值).
上面的例子讨论了汇总函数.但是,我也需要使用其他命令(例如glm)
我是R的新手,想知道R中是否有办法可以做到这一点?
谢谢您的帮助.
我有一个PROC EXPORT问题,我想知道你是否可以回答.
我有一个包含800多个变量和超过200K观测值的SAS数据集,我试图将变量的子集导出到CSV文件(即我需要所有记录;我只是不想要所有800多个变量).我总是可以创建一个临时数据集"KEEP"荷兰国际集团只是我需要和运行在该临时数据集的出口领域,但我想,以避免额外的步骤,因为我有大量的记录.
为了证明这一点,请考虑一个包含三个名为x,y和z的变量的数据集.但是,我希望通过PROC EXPORT生成的文本文件只包含x和y.我尝试下面的解决方案并不是很有效.
SAS代码
当我运行以下代码时,我无法得到我需要的内容.如果您运行此代码并查看生成的文本文件,则每行的末尾都有一个逗号,并且标题包含数据集中的所有变量.另外,我在日志中收到一些我不应该收到的消息.
data ds1;
do x = 1 to 100;
y = x * x;
z = x * x * x;
output;
end;
run;
proc export data=ds1(keep=x y)
file='c:\test.csv'
dbms=csv
replace;
quit;
Run Code Online (Sandbox Code Playgroud)
以下是生成的文本文件的前几行("C:\ test.csv")
x,y,z
1,1,
2,4,
3,9,
4,16,
Run Code Online (Sandbox Code Playgroud)
SAS日志
9343 proc export data=ds1(keep=x y)
9344 file='c:\test.csv'
9345 dbms=csv
9346 replace;
9347 quit;
9348 /**********************************************************************
9349 * PRODUCT: SAS
9350 * VERSION: 9.2
9351 * CREATOR: External File Interface
9352 * DATE: 30JUL12
9353 …Run Code Online (Sandbox Code Playgroud) 使用 Javascript(使用 JQuery),我想删除表中除标题行之外的所有行。
这似乎是一件简单的事情,因为我在 StackOverFlow 上看到了很多关于此问题的帖子,并且提供并接受了很多解决方案。但是,它们似乎都不适合我。请参考我下面的代码:
function delTable() {
console.log("Delete all rows, but the header");
// Option-A
// $('#TableA tbody tr').remove();
// Option-B
// Accepted answer for: https://stackoverflow.com/questions/9420203/how-to-remove-all-rows-of-the-table-but-keep-the-header
// $('#TableA tr').not(function(){ return !!$(this).has('th').length; }).remove();
// Option-C
$('#TableA tbody').empty();
}Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<html>
<body onLoad="delTable();">
<table id="TableA">
<th>
<tr>
<td>Col A</td>
<td>Col B</td>
</tr>
</th>
<tbody>
<tr>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>4</td>
</tr>
</tbody>
</table>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
有谁知道我做错了什么?谢谢。
-卡蒂克
我正在尝试使用 RMarkdown 文档中单个块内的 for 循环生成多个绘图(在 ggplot2 中)。
当我对代码进行硬编码以生成两个图时,图将按预期呈现。请参阅我的代码中标题为“硬编码方法”的部分。
但是,当我加载列表中两个图的参数并循环列表时,图没有显示。我也没有看到任何错误。请参阅我的代码中标题为“循环方法”的部分。
谁能告诉我发生了什么事以及如何解决它?谢谢。
这是我的代码:
---
title: "Test for multiple plots"
author: "KC"
date: "4/3/2020"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
# Hardcoded Method
Sample Plot - One plot at a time
```{r Multiple Plots separately listed, echo=TRUE, fig.keep="all"}
library(ggplot2)
library(datasets)
combo = c("temperature", "pressure")
ggplot(pressure,
mapping=aes(x=base::get(combo[1]), y=base::get(combo[2]))) +
geom_point() +
labs(x=combo[1],
y=combo[2],
title=paste("Hardcoded Method:", paste(combo, collapse=" vs ")))
combo = c("pressure", "temperature")
ggplot(pressure,
mapping=aes(x=base::get(combo[1]), y=base::get(combo[2]))) +
geom_point() + …Run Code Online (Sandbox Code Playgroud) 我在PC上运行SAS Enterprise Guide以连接到位于我们网络中的服务器上的SAS实例.
我正在编写一个将在服务器上运行的SAS程序,该服务器将使用ODS将HTML文件写入PC中的某个子文件夹.我今天可以使用UNC样式的路径名(例如\\ my_machine_name\C $\documents\results.html)来做到这一点,只要我硬编码客户端机器的名称(即上面示例中的"my_machine_name").这个例子假设我的PC里有一个名为"C:\ documents"的文件夹
SAS服务器上运行的SAS能否识别呼叫客户端计算机(即我的PC)并动态获取其网络名称?如果可以,我可以避免上面提到的我的UNC样式路径名的硬编码.
谢谢.