小编Rom*_*rik的帖子

改进我的代码以折叠data.frames列表

亲爱的StackOverFlowers(鲜花简短),

我有一个data.frames(walk.sample)列表,我想将其合并为一个(巨型)data.frame.在折叠时,我想标记(添加另一列)哪些行来自列表的哪个元素.这是我到目前为止所得到的.

这是需要折叠/堆叠的data.frame.

> walk.sample
[[1]]
     walker        x         y
1073      3 228.8756 -726.9198
1086      3 226.7393 -722.5561
1081      3 219.8005 -728.3990
1089      3 225.2239 -727.7422
1032      3 233.1753 -731.5526

[[2]]
     walker        x         y
1008      3 205.9104 -775.7488
1022      3 208.3638 -723.8616
1072      3 233.8807 -718.0974
1064      3 217.0028 -689.7917
1026      3 234.1824 -723.7423

[[3]]
[1] 3

[[4]]
     walker        x         y
546       2 629.9041  831.0852
524       2 627.8698  873.3774
578       2 572.3312  838.7587
513       2 633.0598  871.7559
538       2 636.3088  836.6325 …
Run Code Online (Sandbox Code Playgroud)

r list dataframe

8
推荐指数
2
解决办法
747
查看次数

如何编写多文件项目?

我在LaTeX写论文,因为我的口味有点长,我把它分成了几个文件.让我们给他们打电话thesis.tex,intro.tex,mat_n_met.tex,rslts.texdiscsn.tex.我有联系intro.tex,mat_n_met.tex,rslts.texdiscsn.tex通过thesis.tex\include{intro}(等等...).我还创建了一个名为r_crunching.Rnw(我通过Sweave运行)的单独文件,其中包含一个运行R脚本的块,其中包含数据分析和块,这些块生成我嵌入的图形的pdf输出\includegraphics(例如,rslts.tex).还在关注?

如果我使用R脚本运行一个Rnw(即我重命名rslts.texrslts.Rnw)没有"链接"到块,您将收到一个Sweave()错误,指出引用\Sexpr{}不存在.有没有办法,没有将所有文件合并到一个.Rnw,来打电话\Sexpr{}rslts.Rnw

其他方法如何实现这一点是受欢迎的.

latex r literate-programming sweave

8
推荐指数
2
解决办法
2464
查看次数

输入S4对象

一个人怎么会成为dput()S4对象?我试过这个

require(sp)
require(splancs)
plot(0, 0, xlim = c(-100, 100), ylim = c(-100, 100))
poly.d <- getpoly() #draw a pretty polygon - PRETTY!
poly.d <- rbind(poly.d, poly.d[1,]) # close the polygon because of Polygons() and its kin
poly.d <- SpatialPolygons(list(Polygons(list(Polygon(poly.d)), ID = 1)))
poly.d
dput(poly.d)
Run Code Online (Sandbox Code Playgroud)

请注意,如果我dput()是S4对象,我无法重新构建它.你的意见?

r s4

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

使用snowfall :: sfLapply时正在处理哪个列表元素?

假设我们有一个list(mylist)用作lapply函数的输入对象.有没有办法知道mylist正在评估哪个元素?该方法应该起作用,lapply并且snowfall::sfApply(也可能是其他人也适用于家庭成员).

聊天时,Gavin Simpson提出了以下方法.这很有用,lapply但不是很重要sfApply.我想避免额外的包或摆弄列表.有什么建议?

mylist <- list(a = 1:10, b = 1:10)
foo <- function(x) {
    deparse(substitute(x))
}
bar <- lapply(mylist, FUN = foo)

> bar
$a
[1] "X[[1L]]"

$b
[1] "X[[2L]]"
Run Code Online (Sandbox Code Playgroud)

这是没有削减它的并行版本.

library(snowfall)
sfInit(parallel = TRUE, cpus = 2, type = "SOCK") # I use 2 cores

sfExport("foo", "mylist")
bar.para <- sfLapply(x = mylist, fun = foo)

> bar.para
$a
[1] "X[[1L]]"

$b
[1] …
Run Code Online (Sandbox Code Playgroud)

parallel-processing r list apply lapply

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

使用solve/optim基于两个点(已知半径)确定圆心

我有一对积分,我想找到一个由这两点决定的已知r的圆圈.我将在模拟和可能的空间中使用它x并且y有边界(比如一个-200,200的盒子).

众所周知,半径的平方是

(x-x1)^2 + (y-y1)^2 = r^2
(x-x2)^2 + (y-y2)^2 = r^2
Run Code Online (Sandbox Code Playgroud)

我现在想解决这个非线性方程组,得到两个潜在的圆心.我试过用包BB.这是我的微弱尝试,只给出了一点.我想得到的是两个可能的要点.任何指向正确方向的指针都将在第一时间获得免费啤酒.

library(BB)
known.pair <- structure(c(-46.9531139599816, -62.1874917150412, 25.9011462171242, 
16.7441676243879), .Dim = c(2L, 2L), .Dimnames = list(NULL, c("x", 
"y")))

getPoints <- function(ps, r, tr) {
    # get parameters
     x <- ps[1]
     y <- ps[2]

     # known coordinates of two points
     x1 <- tr[1, 1]
     y1 <- tr[1, 2]
     x2 <- tr[2, 1]
     y2 <- tr[2, 2]

     out <- rep(NA, 2)
     out[1] <- (x-x1)^2 …
Run Code Online (Sandbox Code Playgroud)

optimization geometry r

8
推荐指数
2
解决办法
6512
查看次数

如何将随机的"NA"添加到数据框中

我用随机值创建了一个数据框

n <- 50
df <- data.frame(id = seq (1:n),
age = sample(c(20:90), n, rep = TRUE), 
sex = sample(c("m", "f"), n, rep = TRUE, prob = c(0.55, 0.45))
)
Run Code Online (Sandbox Code Playgroud)

并想介绍一些NA值来模拟真实世界的数据.我试图使用,apply但无法到达那里.这条线

apply(subset(df,select=-id), 2, function(x) {x[sample(c(1:n),floor(n/10))]})
Run Code Online (Sandbox Code Playgroud)

将检索随机值,但是

apply(subset(df,select=-id), 2, function(x) {x[sample(c(1:n),floor(n/10))]<-NA}) 
Run Code Online (Sandbox Code Playgroud)

不会将它们设置为NA.是否尝试过withwithin,太.

蛮力工作:

for (i in (1:floor(n/10))) {
  df[sample(c(1:n), 1), sample(c(2:ncol(df)), 1)] <- NA
  }
Run Code Online (Sandbox Code Playgroud)

但我更愿意使用这个apply家庭.

r apply dataframe

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

安装目录不可写,无法更新软件包'boot','class','KernSmooth','mgcv','nnet','rpart','spatial'

我在Ubuntu 14.04上的R版本3.1.2上安装了Bioconductor软件包,并收到以下消息:

下载的源包位于'/ tmp/RtmpZYw0Qp/downloaded_pa​​ckages'警告消息:已安装的目录不可写,无法更新软件包'boot','class','KernSmooth','mgcv','nnet','rpart','空间"

这是什么意思,它如何影响在R上使用上述软件包?

r

8
推荐指数
3
解决办法
2万
查看次数

multidplyr和group_by()和filter()

我有以下数据框,我的目的是找到所有ID,具有不同的USAGE但相同的TYPE.

ID <- rep(1:4, each=3)
USAGE <- c("private","private","private","private",
"taxi","private","taxi","taxi","taxi","taxi","private","taxi")
TYPE <- c("VW","VW","VW","VW","MER","VW","VW","VW","VW","VW","VW","VW")
df <- data.frame(ID,USAGE,TYPE)
Run Code Online (Sandbox Code Playgroud)

如果我跑

df %>% group_by(ID, TYPE) %>% filter(n_distinct(USAGE)>1)
Run Code Online (Sandbox Code Playgroud)

我得到了预期的结果.但我的原始数据帧有> 2百万行.所以我想在运行此操作时使用所有内核.

我用multidplyr尝试了这段代码:

f1 <- partition(df, ID)
f2 <- f1 %>% group_by(ID, TYPE) %>% filter(n_distinct(USAGE)>1)
f3 <- collect(f2)
Run Code Online (Sandbox Code Playgroud)

但随后出现以下消息:

Warning message: group_indices_.grouped_df ignores extra arguments
Run Code Online (Sandbox Code Playgroud)

f1 <- partition(df, ID)
Run Code Online (Sandbox Code Playgroud)

Error in checkForRemoteErrors(lapply(cl, recvResult)) : 
  4 nodes produced errors; first error: Evaluation error: object 'f1' not found.
Run Code Online (Sandbox Code Playgroud)

f2 <- f1%>% group_by(ID, TYPE) %>% filter(f1, n_distinct(USAGE)>1)
Run Code Online (Sandbox Code Playgroud)

将整个操作实现到multidplyr的正确方法是什么?非常感谢.

r dplyr multidplyr

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

如何使用R将数字提取为数字?

假设我有一个数字:4321

我想把它提取成数字:4,3,2,1

我该怎么做呢?

numbers r extract digits

7
推荐指数
3
解决办法
7029
查看次数

改变Shiny中的井板高度

我有一个很好的wellpanel在我的闪亮即顶部看起来不错:

截图

......但我对实际控件上方和下方的所有额外灰色空间感到恼火!我想删除这个不必要的空间.我的行比它需要的高50%,并且我不确定为什么/如何以这种方式调整Shiny大小.

有css/html/Shiny技能的人是否能够指出我正确的方向,关于如何修改它?到目前为止,我的尝试都没有成功.

这是下面的代码:

shinyUI(fluidPage(


  fluidRow(  
    column(12,
           wellPanel(              
             tags$div(class = "row",
                      tags$div(class = "span"),
                      tags$div(class = "span1", h1(numericInput(inputId="num", label="ID", value=NaN))),
                      tags$div(class = "span2", h1(sliderInput(inputId="age", "Age Range", min=32, max=99, value=c(32, 99), step=1))),
                      tags$div(class = "span1", h1(radioButtons(inputId="gender", "Gender", c("combined" = 0, "male" = 1, "female" = 2), inline=FALSE))),
                      tags$div(class = "span1", h1(textOutput("text")))
             )
           ))),  



  fluidRow(   


    column(4,
           plotOutput("some_plot_not_shown"))

)))
Run Code Online (Sandbox Code Playgroud)

感谢您阅读这篇文章.

r shiny

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