小编dww*_*dww的帖子

为什么 is.recursive 对于函数返回 TRUE

根据帮助,is.recursive(x)“如果 x 具有递归(类似列表)结构,则返回 TRUE,否则返回 FALSE”。我很困惑为什么当 x 是函数时它返回 TRUE 。例如:

is.recursive(mean)
# [1] TRUE
Run Code Online (Sandbox Code Playgroud)

但函数似乎不能在任何有意义的意义上递归,特别是因为它们甚至不能子集:

mean[[1]]
# Error in mean[[1]] : object of type 'closure' is not subsettable
Run Code Online (Sandbox Code Playgroud)

这是 R 源代码中的疏忽,还是有合理的理由认为函数应该被视为递归?

r

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

通过引用将所有列合并到data.table中

我想data.table通过引用将两个合并在一起,而不必写下我要合并的所有变量。这是一个了解我的需求的简单示例:

set.seed(20170711)
(a <- data.table(v_key=seq(1, 5), key="v_key"))
#   v_key
#1:     1
#2:     2
#3:     3
#4:     4
#5:     5

a_backup <- copy(a)

(b <- data.table(v_key=seq(1, 5), v1=runif(5), v2=runif(5), v3=runif(5), key="v_key"))
#   v_key          v1        v2          v3
#1:     1 0.141804303 0.1311052 0.354798849
#2:     2 0.425955903 0.3635612 0.950234261
#3:     3 0.001070379 0.4615936 0.359660693
#4:     4 0.453054854 0.5768500 0.008470552
#5:     5 0.951767837 0.1649903 0.565894298
Run Code Online (Sandbox Code Playgroud)

我想在不指定列名的情况下将每个列复制ba引用中。

我可以执行以下操作,但这会无缘无故地复制对象,从而降低程序性能并增加所需的RAM:

(a  <- a[b])
#   v_key          v1        v2          v3
#1:     1 0.141804303 0.1311052 …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

通过ggplot2抑制小提琴图中的散乱抖动点

以下用于在ggplot2中生成小提琴图:

ggplot(violin,aes(x=variable,y=log(value+0.5),color=Group)) + 
  geom_violin(scale="width") + 
  geom_jitter(aes(group=Group), position=position_jitterdodge()) + 
  stat_summary(fun.y="mean",geom="crossbar", mapping=aes(ymin=..y.., ymax=..y..), 
     width=1, position=position_dodge(),show.legend = FALSE) + 
  theme(axis.text.x = element_text(angle = 45, margin=margin(0.5, unit="cm")))
Run Code Online (Sandbox Code Playgroud)

得到的情节看起来如下;

在此输入图像描述

正如你所看到的,有些点在小提琴形状的边界外抖动,我需要把这些点放在小提琴里面.我玩过不同程度的抖动,但都取得了成功.我很欣赏任何能够实现这一目标的指示.

r ggplot2 violin-plot

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

Plotly R 中的分组线图:如何控制线条颜色?

我有一堆来自同一主题的研究的“配对”观察结果,我正在尝试构建一个意大利面条图来可视化这些观察结果,如下所示:

library(plotly)
df <- data.frame(id = rep(1:10, 2),
                 type = c(rep('a', 10), rep('b', 10)),
                 state = rep(c(0, 1), 10),
                 values = c(rnorm(10, 2, 0.5), rnorm(10, -2, 0.5)))
df <- df[order(df$id), ]
plot_ly(df, x = type, y = values, group = id, type = 'line') %>%
  layout(showlegend = FALSE)
Run Code Online (Sandbox Code Playgroud)

它产生了我正在寻找的正确情节。但是,代码以自己的颜色显示了每个分组的行,这真的很烦人,让人分心。我似乎无法找到摆脱颜色的方法。

额外问题:我实际上想使用color = state该变量并实际为斜线着色。

任何方法/想法?

r plotly

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

R corrplot中的标题也没有居中和太高

我正在使用corrplot来显示相关性,但是标题在情节之上非常高,我想把它拉得更近.我该怎么做呢?

示例数据帧:

"VADeaths" <-
  structure(c(11.7, 18.1, 26.9, 41, 66, 8.7, 11.7, 20.3, 30.9, 54.3, 15.4, 
  24.3, 37, 54.6, 71.1, 8.4, 13.6, 19.3, 35.1, 50), .Dim = c(5, 4),
  .Dimnames = list(c("50-54", "55-59", "60-64", "65-69", "70-74"),
  c("Rural Male", "Rural Female", "Urban Male", "Urban Female")))
Run Code Online (Sandbox Code Playgroud)

计算相关性并可视化

library(corrplot)
cors = cor(VADeaths)

corrplot(cors,tl.col="black",title="Example Plot",mar=c(0,0,5,0),tl.offset = 1)
Run Code Online (Sandbox Code Playgroud)

通过将边距扩展到图表上方的5,我至少可以使标题出现在图中,但无法弄清楚如何使标题更接近图并以图表为中心而不是标签占用的空间.

以上看起来像这样:

我想要更像这样的东西(忽略字体)

我的实际情节标签要小得多,因此标签与标题之间的间隙约为3-4厘米.我没有发现增加mar的价值解决了这个问题.

r r-corrplot

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

从解压的 xml 文件夹重新创建 excel .xlsx 文件

我正在尝试将通过将 excel 文件解压缩回 excel .xlsx 创建的 xml 文件夹转换。但我得到了错误

Microsoft Excel 无法打开或修复工作簿,因为它已损坏

生成此错误的最小可重现示例:

  1. 在 Excel 中创建一个新的空白电子表格
  2. 在单元格 A1 中输入“测试”
  3. 另存为 test.xlsx
  4. 将文件重命名为 test.zip
  5. 解压test.zip为文件夹test
  6. 压缩testtest_new.zip
  7. 重命名test_new.ziptest_new.xlsx
  8. test_new.xlsx用 Excel打开

对于压缩和解压缩,我使用了 7zip、WinZip 和 PeaZip,都具有相同的结果。我做错了什么,如何将解压缩的 Excel 工作簿恢复为原始形式?

xml excel zip 7zip

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

xml中excel vba宏的位置

我有一个 .xlsm 格式的 excel (2013) 电子表格(包含 vba 宏),我希望将其转换为 .xml(以非专有格式保存在存储库中,并提供版本控制,例如在 git 中自动合并分支) .

如此此处所述.xlsx文件已压缩xml,因此只需解压缩即可转换。

我用启用宏的.xlsm文件尝试了这个,我确实得到xml了电子表格的结构。但是我在任何地方都找不到宏。有谁知道宏的存储位置.xlsm以及在相应的解压缩文件夹中的位置。

xml excel vba

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

download.file 的 mode= 参数有什么作用?

这是我第二次在线搜索 download.file 的帮助并通过调用模式参数解决了我的问题,但我不知道原因是什么或何时/为什么使用它们。刚刚看到建议并通过了论点来解决我的问题。

\n\n

download.file() 上的 R 帮助文件有点太简短,没有告诉我何时使用特定模式

\n\n
\n

模式字符。写入文件的模式。有用的值包括“w”、“wb”(二进制)、“a”(追加)和“ab”。仅用于“内部”\n 方法。(另请参见 \xe2\x80\x98Details\xe2\x80\x99。)

\n
\n\n

为了得到正确的答案,我必须通过下面的 mode="wb" ;但为什么(也许与 https 中的 s 有关,或者我现在应该进行尝试和错误)。

\n\n
fileUrl <-"https://d396qusza40orc.cloudfront.net/getdata%2Fjeff.jpg"\ndownload.file(fileUrl, destfile = "./data/leekjpg.jpg", mode="wb")\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想至少对 download.file 中的方法和模式参数有一些初步的了解,并且希望您能提供解释或建议性的阅读。

\n\n

我正在下载更多文件,但令我困扰的是我不知道何时传递一些相关参数。

\n

r

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

获取 R 数据帧的内存地址

我希望我的 C 函数能够操作存储在 R 数据框中的一些值。

为了实现这一点,需要 R 数据帧存储其数据的(真实)内存地址(希望以连续的方式);然后从 R 调用 C 函数并将此内存地址作为参数传递。

问题:我们如何获得R数据帧的内存地址?

c c++ r rcpp

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

在 data.frame 名称上使用 Rcpp 糖

我想将 data.frame 作为参数传递给带有可选列的 Rcpp 函数。然后,C++ 函数需要测试列是否存在。如果我像下面的示例一样使用 Sugar 函数any,则会出现编译错误。

cppFunction(
  'double test(DataFrame test_data) {
      double x=NA_REAL;
      CharacterVector colnames = CharacterVector::create("foo");
      CharacterVector df_names = test_data.names();
      if (any(df_names == colnames)) x = 1.0;
      return(x);
    }')
Run Code Online (Sandbox Code Playgroud)

无效使用不完整类型类 Rcpp::sugar::forbidden_​​conversion`

我知道我可以在循环中一一测试字符值,如下所示(按预期工作):

cppFunction(
  'double test(DataFrame test_data) {
      double x=NA_REAL;
      CharacterVector colnames = CharacterVector::create("foo");
      CharacterVector df_names = test_data.names();
      for (int i=0; i<df_names.length(); i++) {
        if (df_names[i] == colnames[i]) x = 1.0;
      }
      return(x);
    }')
test(data.frame(bar=3))
# [1] NA
test(data.frame(foo=3))
# [1] 1
Run Code Online (Sandbox Code Playgroud)

但是,如果可能的话,我想使用矢量化的“糖”版本。我做错了什么,我该怎么做?

r rcpp

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

R中有换档操作吗?

在c ++中有移位操作

 >> right shift
 << left shift
Run Code Online (Sandbox Code Playgroud)

这被认为是非常快的.
我试图在R中应用相同的但似乎是错的.

在R中有类似的操作是否与此一样快?

提前致谢.

r

-4
推荐指数
1
解决办法
530
查看次数

标签 统计

r ×9

excel ×2

rcpp ×2

xml ×2

7zip ×1

c ×1

c++ ×1

data.table ×1

ggplot2 ×1

plotly ×1

r-corrplot ×1

vba ×1

violin-plot ×1

zip ×1