我试图将一些数据加以估算,并且它以一种非常奇怪的方式失败.我有选项(错误=恢复)设置,并且mi()不会抛出错误,但它会在第一次尝试后停止输入.它也不返回值.因此我不知道从哪里开始调试.下面的可重复性最小的例子
> library(mi)
> temp <- mi(dat)
Beginning Multiple Imputation ( Wed Dec 14 10:44:44 2011 ):
Iteration 1
Chain 1 : HLTHA5.fac* BMI* INCOME*
> temp
Error: object 'temp' not found
dat<-structure(list(treat = c(FALSE, FALSE, TRUE, TRUE, TRUE, FALSE,
FALSE, FALSE, TRUE, FALSE, FALSE, TRUE, FALSE, TRUE, TRUE, TRUE,
FALSE, TRUE, TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE), NUMADULT = c(2,
1, 2, 1, 2, 1, 2, 1, 2, 4, 1, 1, 2, 2, 1, 2, 1, 1, 2, …Run Code Online (Sandbox Code Playgroud) 我遇到了一个问题,其中xmlValue剥离了<br />我需要保留的标签(或转换为我可以继续strsplit使用的其他角色.
这是一个例子:
> f <- htmlParse(getForm("http://sites.target.com/site/en/spot/store_locator_popups.jsp", ajax="true", storeNumber=1889), asText=TRUE)
> xpathSApply(f, "//div[@class=\"sl_results_popup_address\"]", xmlValue)
[1] "1154 S Clark StChicago, IL 60605(312) 212-6300"
Run Code Online (Sandbox Code Playgroud)
与它解析的HTML相比:
<div class="sl_results_popup_address">
1154 S Clark St
<br/>
Chicago, IL 60605
<br/>
(312) 212-6300
</div>
Run Code Online (Sandbox Code Playgroud)
我试过了,, recursive=FALSE但似乎没有帮助.
如果他们是<p>和</p>断线然后它会更容易,因为我可以单独抓住它们,但<br/>没有包装文本我真的不能去那个方向.希望只有一个选项来降低内部完成的剥离级别xmlValue(或者<br/>在解析文档阶段可能会剥离s?).
我想在一个a中包含sign%,data.frame以便data.frame稍后在列的每一行print(xtable(data.frame....))的数值旁边打印一个%符号.data2Values in %
数据示例:
data1 <- rnorm(5,10,2)
data2 <- round(rexp(5,2),1)
frameData <- data.frame(data1,data2)
colnames(frameData) <- c("Measurement","Values in %")
Run Code Online (Sandbox Code Playgroud)
我尝试过这样的事情:
data1 <- rnorm(5,10,2)
data2 <- round(rexp(5,2),1)
data3 <- rep("%",5)
frameData <- data.frame(data1,data2,data3)
colnames(frameData) <- c("Measurement","Values in %","")
Run Code Online (Sandbox Code Playgroud)
但我不能让标志足够接近,后来print(xtable(frameData....))距离放大了.
我有data.table以下功能:
bycols 将数据分成组nonvaryingcols 在每个小组中保持不变(这样从每个小组中取出第一个项目并进行通过就足够了)datacols 需要对它们执行一些汇总操作(例如在组内汇总)我很好奇什么是最有效的方法,你可以称之为混合崩溃,将上述所有三个输入作为字符向量.它不一定是绝对最快的,但是使用合理的语法足够快将是理想的.
示例数据:
require(data.table)
set.seed(1)
bycols <- c("g1","g2")
datacols <- c("dat1","dat2")
nonvaryingcols <- c("nv1","nv2")
test <- data.table(
g1 = rep( letters, 10 ),
g2 = rep( c(LETTERS,LETTERS), each = 5 ),
dat1 = runif( 260 ),
dat2 = runif( 260 ),
nv1 = rep( seq(130), 2),
nv2 = rep( seq(130), 2)
)
Run Code Online (Sandbox Code Playgroud)
最终数据应如下所示:
g1 g2 dat1 dat2 nv1 nv2
1: a A 0.8403809 0.6713090 1 1
2: b A 0.4491883 0.4607716 2 …Run Code Online (Sandbox Code Playgroud) 我想在by-without-by操作中保留by变量data.table.
我有一个过去曾经工作过(大约2年前),现在有最新版本的data.table我认为行为必须改变.
这是一个可重复的例子:
library(data.table)
dt <- data.table( by1 = letters[1:3], by2 = LETTERS[1:3], x = runif(3) )
by <- c("by1","by2")
allPermutationsOfByvars <- do.call(CJ, sapply(dt[,by,with=FALSE], unique, simplify=FALSE)) ## CJ() to form index
setkeyv(dt, by)
dt[ allPermutationsOfByvars, list( x = x ) ]
Run Code Online (Sandbox Code Playgroud)
哪个产生:
> dt[ allPermutationsOfByvars, list( x = x ) ]
x
1: 0.9880997
2: NA
3: NA
4: NA
5: 0.4650647
6: NA
7: NA
8: NA
9: 0.4899873
Run Code Online (Sandbox Code Playgroud)
我可以这样做:
> cbind( allPermutationsOfByvars, dt[ allPermutationsOfByvars, …Run Code Online (Sandbox Code Playgroud) 在打高尔夫球时,人们试图用尽可能少的角色完成拼图,通常只使用基本语言.在R中打高尔夫球的一个技巧是使用部分完成,以便例如rle(...)$length可以缩短到rle(...)$l.如何在R中打开函数名称,最好是尽可能少的字符?
我在R工作,我想做,例如,
printx <- function() {
x <- 1
printy()
return(x)
}
printy <- function() {
print(x)
}
Run Code Online (Sandbox Code Playgroud)
因为我不想继续传递大量的变量(同样,全球环境中也没有x).有没有办法做到这一点?所有功能都可以访问全局环境,但功能环境与全局环境之间的功能如何?
可能重复:
在RStudio中循环期间绘图
我正在尝试监视收敛循环的状态,而且我似乎无法在每次迭代时更新图形.
这是一些示例代码:
print(plot(c(0,1)~c(0,100)))
for(i in seq(100)) {
Sys.sleep(.1)
print(points( runif(1)~i ))
}
Run Code Online (Sandbox Code Playgroud)
请注意,图表仅在绘制完所有内容后更新.我需要它来更新每个循环迭代.我以为print会这样做,但它不起作用.
更新
这是一个特定于RStudio的问题,因为它在基础R中正常工作.有没有办法在RStudio中强制绘制每个循环迭代?
生成data.frames(特别是对于不可再现的SO问题)的一种非常罕见的情况是当一列依赖于另一列的(通常是随机的)值时.例如,如果想要一个data.frame来测试回归,那么产生一些噪声线性依赖会很好:
n <- 100
x <- runif(n)
dat <- data.frame( x=x, y=x+runif(n) )
plot(y~x,data=dat)
Run Code Online (Sandbox Code Playgroud)

但是,我想在一行中完成(上面将计为两行,第一行创建x,第二行使用data.frame赋值中的x),理想情况下不会在全局环境中存放任何内容.
我有一个包含5列的csv文件.我想将第四列csv文件转换到第10行.并且第5列csv文件需要每10行转换一次,直到列的末尾.我无法为此循环.很感谢任何形式的帮助.谢谢!
test<-read.csv("sample.csv",sep=',')
first<-test$col4[1:10]
t(first)
n=length(sample.csv)
b<-1:1000
a<-1:10
for(i in 1:n) {
second<-test[a-9:a]
}
Run Code Online (Sandbox Code Playgroud)
我已经读过第4列第10行并转换它们.我想把第五列放在一个循环中并转置,然后转换'rbind'这两个.