小编nog*_*pes的帖子

为什么一些Unicode字符显示在矩阵中,而不是R中的数据帧?

至少在某些情况下,亚洲字符如果包含在a matrix或a中vector,则不可打印,但不包含在a中data.frame.这是一个例子

q<-'?'

q # Works
# [1] "?" 

matrix(q) # Works
#      [,1]
# [1,] "?"

q2<-data.frame(q,stringsAsFactors=FALSE) 
q2 # Does not work
#          q
# 1 <U+5929>

q2[1,] # Works again.
# [1] "?"
Run Code Online (Sandbox Code Playgroud)

显然,我的设备能够显示角色,但是当它在a中时data.frame,它不起作用.

做一些挖掘,我发现该print.data.frame函数format在每列上运行.事实证明,如果format.default直接运行,会出现同样的问题:

format(q)
# "<U+5929>"
Run Code Online (Sandbox Code Playgroud)

深入研究format.default,我发现它是format用C语言编写的.

在我进一步挖掘之前,我想知道其他人是否可以重现这种行为.是否有一些R配置允许我在data.frames中显示这些字符?

我的sessionInfo(),如果它有帮助:

R version 3.0.1 (2013-05-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_Canada.1252  LC_CTYPE=English_Canada.1252   
[3] LC_MONETARY=English_Canada.1252 LC_NUMERIC=C                   
[5] …
Run Code Online (Sandbox Code Playgroud)

r

21
推荐指数
2
解决办法
3114
查看次数

当没有非NA值时,汇总不会从最大值返回警告

如果max(x, na.rm = TRUE)在没有非NA值的情况下调用它,则会返回-Inf警告.但是,在某些情况下,summarise函数in dplyr不会返回警告:

library(magrittr)
library(dplyr)

df1 <- data.frame(a = c("a","b"), b = c(NA,NA))
df1 %>% group_by(a) %>% summarise(x = max(b, na.rm = TRUE))
# Three warnings, as expected.

df2 <- data.frame(a = c("a","b"), b = c(1,NA))
df2 %>% group_by(a) %>% summarise(x = max(b, na.rm = TRUE))
# No warning. Unexpected.
Run Code Online (Sandbox Code Playgroud)

有趣的是,如果我重命名该函数,我会得到预期的警告:

# Pointer to same function.
stat <- max

df1 <- data.frame(a = c("a","b"), b = c(NA,NA))
df1 %>% …
Run Code Online (Sandbox Code Playgroud)

warnings r dplyr

13
推荐指数
2
解决办法
799
查看次数

如何在热图中使单元格大小使用R调解数据分辨率?

给出以下示例:

X <- matrix(nrow=3, ncol=3)
X[1,] <- c(0.3, 0.4, 0.45)
X[2,] <- c(0.3, 0.7, 0.65)
X[3,] <- c(0.3, 0.4, 0.45)
colnames(X)<-c(1.5, 3, 4)
rownames(X)<-c(1.5, 3, 4)
Run Code Online (Sandbox Code Playgroud)

heatmap(heatmap(X, Rowv=NA, Colv=NA, col=rev(heat.colors(256))))看起来像:

在此输入图像描述

现在,假设轴上的变量是影响某些功能的参数,3和4之间的距离小于1和3之间的距离,我希望热图的单元尺寸能够反映这一点.如何制作热像图,其中单元格大小反映了已知数据的分辨率?

我在想一些看起来有点像这样的东西:

我想要的草图

是否存在用于创建此类内容的库?如果不是,是因为我遗失了什么?如果是这样,什么?

r heatmap

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

R:找不到作为参数传递的函数

我试图在R中编写一个简单的迭代重加权最小二乘算法.我想传递一个函数作为计算权重的参数,但遗憾的是R抱怨该函数无法找到.我有什么想法我做错了吗?提前致谢!

这是我的代码:

irls <- function(imodel, wfunc, tol) {

    repeat {
        b0 <- imodel$coef
        imodel <- lm(formula(imodel), weights=wfunc(imodel), data=imodel$model)
        b1 <- imodel$coef
        if(abs((b1-b0)/b0)<=tol) break
    }

    imodel
}
Run Code Online (Sandbox Code Playgroud)

和一个愚蠢的例子来证明这个问题

x <- 1:100
y <- x + rnorm(100)
mlm <- lm(y~x-1)
irls(mlm, function(x){rep(1,length(x$fit))},0.001) # error: wfunc not found
Run Code Online (Sandbox Code Playgroud)

iteration regression r function

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

R把传统的情节和ggplot2放在一起

我有2张图,一张用ggplot2这样绘制的地图:

w<-ggplot()+
  geom_polygon(data=dep_shp.df, aes(x=long,y=lat,group=group,fill=classJenks))+

  #   scale_fill_gradient(limits=c(40, 100))+
  labs(title ="Classification de la proportion de producteurs par départements
       \n par la methode de jenks (2008)")+
  theme_bw()+
  coord_equal()
Run Code Online (Sandbox Code Playgroud)

和图形类型的对象classIntervalsclassInt库.

我想把这两张图组合在一起.我试过了:

vplayout <- function(x, y) viewport(layout.pos.row = x, layout.pos.col = y)
grid.newpage()
pushViewport(viewport(layout = grid.layout(1, 2)))

#creation
print(u, vp = vplayout(1, 1))
print(v, vp = vplayout(1, 2))
Run Code Online (Sandbox Code Playgroud)

还有一些东西 grid.arrange

grid.arrange(plot1, plot2, ncol=2)
Run Code Online (Sandbox Code Playgroud)

但这些都不起作用.

plot r ggplot2

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

赋值给函数的结果改变变量

通过这个ave功能,我找到了一条非凡的路线:

split(x, g) <- lapply(split(x, g), FUN) # From ave
Run Code Online (Sandbox Code Playgroud)

有趣的是,这条线改变了x我发现意外的价值.我希望这split(x,g)会产生一个列表,可以分配给,但之后丢弃.我的问题是,为什么x变化的价值?

另一个例子可能更好解释:

a <- data.frame(id=c(1,1,2,2), value=c(4,5,7,6))
#   id value
# 1  1     4
# 2  1     5
# 3  2     7
# 4  2     6

split(a,a$id) # Split a row-wise by id into a list of size 2
# $`1`
#   id value
# 1  1     4
# 2  1     5
# $`2`
#   id value
# 3  2     7
# 4 …
Run Code Online (Sandbox Code Playgroud)

r

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

如何用Rmd和Knit HTML显示"漂亮"的glm和multinom表?

当我执行multinom reg.我很难用Rmd和Knit HTLM(Rstudio)得到一个很好的总结.我想知道如何得到一个很好的总结,好像我使用stargazerLaTeX包...(参见printscreen)

摘要输出难以阅读! 在此输入图像描述

总结很好,很容易与观星者阅读! 在此输入图像描述

markdown r knitr multinomial stargazer

6
推荐指数
2
解决办法
9039
查看次数

在PostgreSQL上运行PL/R时,R可以处理比RAM更大的数据吗?

当我使用R开源时,如果不使用特定的包,则不可能处理大于RAM内存的数据集.所以我想知道是否有可能处理在PostgreSQL中应用PL/R函数的大数据集.

我没有找到任何关于此的文档.

postgresql r bigdata plr

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

用平滑样条替换所有NA

以下是样本数据(大约8000行数据).如何使用适合其余数据的平滑样条曲线中的值替换所有NA?

Date            Max Min Rain    RHM RHE
4/24/1981   35.9    24.7    0.0 71  37
4/25/1981   36.8    22.8    0.0 62  40
4/26/1981   36.0    22.6    0.0 47  37
4/27/1981   35.1    24.2    0.0 51  39
4/28/1981   35.4    23.8    0.0 61  47
4/29/1981   35.4    25.1    0.0 67  43
4/30/1981   37.4    24.8    0.0 72  34
5/1/1981      NA      NA     NA NA  NA
5/2/1981    39.0    25.3     NA NA  55
5/3/1981    35.9    23.0    0.0 68  66
5/4/1981    28.4    22.4    0.7 70  30
5/5/1981    35.5    24.6    0.0 47  31
5/6/1981 …
Run Code Online (Sandbox Code Playgroud)

r spline zoo

5
推荐指数
2
解决办法
3731
查看次数

如何使用 R 调用/执行 imageJ 宏?

我在 imageJ 中编写了一个宏,它会输出一个数据框,然后在 R 中进行分析。我希望能够在 R 中运行整个过程,而不必先在 imageJ 中手动运行宏。目前宏提示用户输入和输出目录,然后做它的事情。我在想 R 中必须有一个函数可以让我指定宏以及输入和输出目录(然后我可以在宏中重新编码这些变量以某种方式通过 R 脚本获取这些参数?)

我认为我可以使用 system() 命令,并从网络上的其他地方找到了这个诱人的线索:

system("./JavaApplicationStub  directory file[i] -batch zmacro") 
Run Code Online (Sandbox Code Playgroud)

但我不确定如何实现这一点(我的宏已经使用了批处理,因此该部分是不必要的)。

macros r imagej

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