我有一个文件,名为a.r,它有一个chmod755,
sayHello <- function(){
print('hello')
}
sayHello()
Run Code Online (Sandbox Code Playgroud)
我如何通过命令行运行它?
我有一个数字向量:
numbers <- c(4,23,4,23,5,43,54,56,657,67,67,435,
453,435,324,34,456,56,567,65,34,435)
Run Code Online (Sandbox Code Playgroud)
如何计算值x在向量中出现的次数?
我正在弄清楚如何使用我的大学集群.它安装了2个版本的R. 系统范围的R 2.11(Debian 6.0)和R 2.14.2在非标准位置.
我正在尝试将MPI与雪一起使用.我试图运行的代码如下
library(snow)
library(Rmpi)
cl <- makeMPIcluster(mpi.universe.size()-1)
stopCluster(cl)
mpi.quit()
Run Code Online (Sandbox Code Playgroud)
它在R 2.11上没有问题.(我用它启动脚本mpirun -H localhost,n1,n2,n3,n4 -n 1 R --slave -f code.R).现在,当我尝试使用R 2.14.2时,我收到以下消息:
Error: This is R 2.11.1, package 'snow' needs >= 2.12.1
In addition: Warning message:
Run Code Online (Sandbox Code Playgroud)
所以似乎R加载为R 2.11编译的包雪版本.我已将R 2.14下的雪安装到我的主文件夹中,并在代码中添加了以下行:
.libPaths("/soft/R/lib/R/library")
.libPaths("~/R/x86_64-pc-linux-gnu-library/2.11")
print(.libPaths())
print(sessionInfo())
print(version)
Run Code Online (Sandbox Code Playgroud)
并且错误之前的输出确认我确实正在运行R 2.14.2并且我的R packages文件夹首先在搜索路径中.但我仍然得到错误.
所以我的问题是如何确定在R中加载哪个版本的软件包?我可以看到 installed.packages所有已安装的软件包,所以可能有一些函数列出了加载软件包的类似信息?
如何使用XML包刮取html表?
以巴西足球队的维基百科页面为例.我想在R中阅读并获得"巴西队对阵FIFA认可球队所有比赛的名单"表作为data.frame.我怎样才能做到这一点?
我有一个从xmlAttrs返回的命名字符向量,如下所示:
testVect <- structure(c("11.2.0.3.0", "12.89", "12.71"), .Names = c("db_version",
"elapsed_time", "cpu_time"))
Run Code Online (Sandbox Code Playgroud)
我想将其转换为如下所示的数据框:
testDF <- data.frame("db_version"="11.2.0.3.0","elapsed_time"=12.89,"cpu_time"=12.71)
head(testDF)
db_version elapsed_time cpu_time
1 11.2.0.3.0 12.89 12.71
Run Code Online (Sandbox Code Playgroud) 我在数据框中有一个变量,其中一个字段通常有7-8个值.我想在数据框中的一个新变量中将它们拼写为3或4个新类别.什么是最好的方法?
如果我在类似SQL的工具中但是不确定如何在R中攻击它,我将使用CASE语句.
您将提供的任何帮助将不胜感激!
有什么区别数据框和列表中R?应该使用哪一个?哪个更容易循环?
确切的问题:我必须先存储3个字符串元素,如"a","b","c".后来对于其中的每一个,我需要追加3个元素; 例如对于"a",我必须添加"a1","a2","a3".后来我必须使用嵌套的for循环来访问这些元素.
所以我很困惑使用数据帧或列表或其他一些数据类型,我可以先存储然后追加(每列的种类)?
目前我收到错误,例如"要替换的项目数不是替换长度的倍数"
我有一个Rdata包含各种对象的文件:
New.Rdata
|_ Object 1 (e.g. data.frame)
|_ Object 2 (e.g. matrix)
|_...
|_ Object n
Run Code Online (Sandbox Code Playgroud)
当然我可以加载数据框load('New.Rdata'),但是,是否有一种智能方法只从该文件中加载一个特定对象并丢弃其他对象?
我正在使用R中的topicmodels包进行主题建模.我正在创建一个Corpus对象,进行一些基本的预处理,然后创建一个DocumentTermMatrix:
corpus <- Corpus(VectorSource(vec), readerControl=list(language="en"))
corpus <- tm_map(corpus, tolower)
corpus <- tm_map(corpus, removePunctuation)
corpus <- tm_map(corpus, removeWords, stopwords("english"))
corpus <- tm_map(corpus, stripWhitespace)
corpus <- tm_map(corpus, removeNumbers)
...snip removing several custom lists of stopwords...
corpus <- tm_map(corpus, stemDocument)
dtm <- DocumentTermMatrix(corpus, control=list(minDocFreq=2, minWordLength=2))
Run Code Online (Sandbox Code Playgroud)
然后执行LDA:
LDA(dtm, 30)
Run Code Online (Sandbox Code Playgroud)
最后调用LDA()返回错误
"Each row of the input matrix needs to contain at least one non-zero entry".
Run Code Online (Sandbox Code Playgroud)
我认为这意味着在预处理之后至少有一个文档中没有任何术语.有没有一种简单的方法可以从DocumentTermMatrix中删除不包含任何术语的文档?
我查看了topicmodels包的文档,找到了函数removeSparseTerms,它删除了任何文档中没有出现的术语,但没有类似的删除文档.
几种SQL语言(我主要使用postgreSQL)有一个名为coalesce的函数,它返回每行的第一个非空列元素.当表中包含大量NULL元素时,这可以非常有效地使用.
我在R中的许多场景中都遇到过这种情况,当处理不太结构化的数据时,其中包含很多NA.
我自己做了一个天真的实现,但它的速度非常慢.
coalesce <- function(...) {
apply(cbind(...), 1, function(x) {
x[which(!is.na(x))[1]]
})
}
Run Code Online (Sandbox Code Playgroud)
a <- c(1, 2, NA, 4, NA)
b <- c(NA, NA, NA, 5, 6)
c <- c(7, 8, NA, 9, 10)
coalesce(a,b,c)
# [1] 1 2 NA 4 6
Run Code Online (Sandbox Code Playgroud)
coalesce在R中有没有有效的方法?