小编Ari*_*man的帖子

没有抛出错误的错误

我试图将一些数据加以估算,并且它以一种非常奇怪的方式失败.我有选项(错误=恢复)设置,并且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)

debugging r

3
推荐指数
1
解决办法
228
查看次数

防止'xmlValue`剥离<br />标签

我遇到了一个问题,其中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?).

xml parsing r

3
推荐指数
1
解决办法
539
查看次数

在data.frame R中包含数值旁边的%或任何其他符号

我想在一个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....))距离放大了.

r

3
推荐指数
1
解决办法
87
查看次数

在每列上混合使用不同的操作来折叠data.table

我有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)

r collapse data.table

3
推荐指数
1
解决办法
139
查看次数

保留R data.table中的变量by-without-by

我想在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 data.table

3
推荐指数
1
解决办法
88
查看次数

如何打开功能名称?

在打高尔夫球时,人们试图用尽可能少的角色完成拼图,通常只使用基本语言.在R中打高尔夫球的一个技巧是使用部分完成,以便例如rle(...)$length可以缩短到rle(...)$l.如何在R中打开函数名称,最好是尽可能少的字符?

r code-golf

2
推荐指数
1
解决办法
470
查看次数

是否有可能使函数识别它们上面的变量?

我在R工作,我想做,例如,

printx <- function() {
  x <- 1
  printy()
  return(x)
}

printy <- function() {
  print(x)
}
Run Code Online (Sandbox Code Playgroud)

因为我不想继续传递大量的变量(同样,全球环境中也没有x).有没有办法做到这一点?所有功能都可以访问全局环境,但功能环境与全局环境之间的功能如何?

r

2
推荐指数
1
解决办法
144
查看次数

在Rstudio中for循环期间更新情节?

可能重复:
在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中强制绘制每个循环迭代?

plot r rstudio

2
推荐指数
1
解决办法
4407
查看次数

单行创建data.frame并且列相互依赖

生成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)

y vs x

但是,我想在一行中完成(上面将计为两行,第一行创建x,第二行使用data.frame赋值中的x),理想情况下不会在全局环境中存放任何内容.

r dataframe

2
推荐指数
1
解决办法
778
查看次数

每10行转换一列(约10,000行)

我有一个包含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'这两个.

r

1
推荐指数
1
解决办法
1880
查看次数

标签 统计

r ×10

data.table ×2

code-golf ×1

collapse ×1

dataframe ×1

debugging ×1

parsing ×1

plot ×1

rstudio ×1

xml ×1