我正在尝试使用以下代码创建构面网格
p <- ggplot(melted,aes(factor(country))) + geom_bar() +opts(axis.text.x = theme_text(angle = 90,hjust = 1))
p + facet_grid(. ~ provider)
Run Code Online (Sandbox Code Playgroud)
但我总是得到以下错误:
sub("^ [^:] + :( [^ \n] +)\n [0-9] + :(.*)$","\ 1\2",expr)出错:输入字符串1为在此语言环境中无效
我不知道我做错了什么.也试图考虑我的方面,这也不起作用.
Thx提前!
当使用factalal执行因子分析时,通常的结果是一些加载表加上其他几个信息.有没有直接的方法来使用这些加载来创建因子的矩阵/数据框架?例如,稍后在回归分析中使用它们.
编辑:这样做的目的是获取后续建模的变量.我只知道因子分数 - 但欢迎提出/指出其他术语:)
EDIT2:Joris Meys的回答基本上就是我的要求.尽管它将我的问题转移到可能更适合statsoverflow的方向,但我现在将它保留在这里,因为正确的人群正在讨论解决方案:
基于回归的分数的好处是什么?产品(ML)的结果与因素高度相关......老实说,我想知道为什么差异在我的情况下很大?
fa$scores # the correct solution
fac <- m1 %*% loadings(fa) # the answer on your question
diag(cor(fac,fa$scores))
#returns:
Factor1 Factor2 Factor3
0.8309343 0.8272019 0.8070837
Run Code Online (Sandbox Code Playgroud) 是否可以在已有的情节中添加一条线(例如额外的时间序列)?我知道如何添加水平或垂直线,但我如何从其他data.frames添加?
q_myplot<-qplot(datefield,myvalue,data=mydf,geom=c("line"),colour=category) +opts(axis.title.x = theme_blank()) + scale_x_date(major="2 years")
Run Code Online (Sandbox Code Playgroud)
是我的基本情节,显示按类别分组的三个不同时间序列.有没有办法在图中添加另一条线,例如使用图层?当然我可以使用另一个类别将这些额外的数据添加到mydf,但我想知道那里是否有更好的想法.
我使用RMySQL和MySQL数据库来存储我的数据集.有时数据会被修改,或者我也会将结果存储回数据库.简而言之,在我的用例中,R和数据库之间存在相当多的交互.
大部分时间我使用的便利功能,如dbWriteTable与dbReadTable写入和读取我的数据.不幸的是,这些只是完全忽略了R数据类型和MySQL字段类型.我的意思是我希望MySQL日期字段最终在一个Date或POSIX类中.另一种方法我认为这些R类存储为一个有点对应的MySQL字段类型.这意味着日期不应该是角色 - 我不希望在这里区分浮动和双打......
我也尝试过使用dbGetQuery- 那里有相同的结果.在阅读本手册时是否有一些我完全错过的内容,或者在这些软件包中是否完全不可能?一个不错的工作会怎样?
编辑:@mdsummer我试图在文档中找到更多内容,但只发现了这些令人失望的行:`MySQL表作为data.frames读入R,但没有将字符或逻辑数据强制转换为因子.类似地,在导出data.frames时,因子被导出为字符向量.
整数列通常作为R整数向量导入,但BIGINT或UNSIGNED INTEGER等情况除外,它们被强制转换为R的双精度向量以避免截断(当前R的整数是带符号的32位数).
时间变量作为字符数据导入/导出,因此您需要将这些变量转换为您喜欢的日期/时间表示.
如果我使用\n,labs(title="whatever \n comes after this")我最终会在线之间留出相当大的空间.有没有办法影响它?(我的意思是除了标题本身的字体大小).
我得到了一些报告,其中包含一些包含比例和绝对值的表格.现在我想显示包含digits=2精度比例的行,而绝对值只显示digits=0.我知道xtable
使用这样的调用可以开箱即用
xtable(tableWith3Cols,digits=c(0,0,2,2))
Run Code Online (Sandbox Code Playgroud)
但有没有办法按行进行同样的事情?
编辑:这是一个可重复的例子
require(xtable)
df <- data.frame(col1=rnorm(10),col2=runif(10,1,3))
xtable(df,digits=c(0,5,0))
Run Code Online (Sandbox Code Playgroud)
回声
% latex table generated in R 2.15.1 by xtable 1.7-0 package
% Fri Jan 18 18:58:47 2013
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrr}
\hline
& col1 & col2 \\
\hline
1 & -0.79222 & 3 \\
2 & 0.24845 & 2 \\
3 & 0.24217 & 2 \\
4 & -0.19935 & 2 \\
5 & 0.47873 & 2 \\
6 & 1.10494 & 2 \\
7 …Run Code Online (Sandbox Code Playgroud) 我正在开发一个基于postgreSQL数据库的R包.因此,有些.sql文件包含相应数据库的推荐表结构.
如果我想构建一个包(用于CRAN),我想知道在哪里放这些文件?
我想以一种融合类型的数据格式将arima模型的预测输出转换为我原来的ts系列对象.但是我收到以下错误消息,我不明白:
Error in `[<-.ts`(`*tmp*`, ri, value = c(12.2567768232753, -0.0141881223732589, :
only replacement of elements is allowed
Run Code Online (Sandbox Code Playgroud)
这里有一些可重现的代码,以及来自雅虎财经的一些示例数据:
# custom function to extract years from ts object
tsyears = function (ts){
years = as.data.frame(trunc(time(ts)))
return(years)
}
library(quantmod)
sp500 = new.env()
### get some fresh data directly from yahoo finance
getSymbols("^GSPC", env = sp500, src ="yahoo", from = as.Date("1960-01-01"),to =as.Date("2010-09-29") )
GSPC = sp500$GSPC
check what we got (last 6 entries)
tail(GSPC)
#calculate annual returns from all the adjusted closes
annual=annualReturn(GSPC)
model …Run Code Online (Sandbox Code Playgroud) 我使用ddply data.frame按类别汇总一些,如下所示:
# with both group and size being factors / categorical
split.df <- ddply(mydata,.(group,size),summarize,
sumGroupSize = sum(someValue))
Run Code Online (Sandbox Code Playgroud)
这很顺利,但我喜欢计算比率,这意味着我需要除以组的总数.如何在同一个ddply电话中计算这样的总数?
假设我想在A组中观察到大小等级为1的观察结果.显然,我必须先计算出1级大小的所有观测值的总和.当然,我可以通过两个ddply呼叫来完成此操作,但使用所有一个呼叫会更舒服.有办法吗?
编辑:我不是故意要求过于具体,但我意识到我在这里打扰了人们.所以这是我的具体问题.事实上,我确实有一个有效的例子,但我不认为它真的很漂亮.此外,它有一个我需要克服的缺点:它无法正确应用.
library(plyr)
# make the dataset more "realistic"
mydata <- warpbreaks
names(mydata) <- c("someValue","group","size")
mydata$category <- c(1,2,3)
mydata$categoryA <- c("A","A","X","X","Z","Z")
# add some NA
mydata$category[c(8,10,19)] <- NA
mydata$categoryA[c(14,1,20)] <- NA
# someValue is summarized !
# note we have a another, varying category hence we need the a parameter
calcShares <- function(a, data) {
# !is.na needs …Run Code Online (Sandbox Code Playgroud) 我有data.frames列表,我想知道是否有一种简单的索引方式来获取所有data.frames的所有第三列.或者所有列都命名为x?说到R:
lapply(names(mylist),function(x) mylist[[x]][,3])
Run Code Online (Sandbox Code Playgroud)
有没有办法通过索引来实现,比如mylist [[]] [,3]?(显然不起作用)
编辑:当你想使用像nlevels这样的函数时,你是如何做到这一点的
lapply(names(mylist),function(x) nlevels(mylist[[x]][,3]))
Run Code Online (Sandbox Code Playgroud)
鉴于第3列是一个因素.