小编989*_*989的帖子

在R中按用户获取已安装软件包的列表

我们如何在R中获取用户安装的软件包列表及其版本?

我知道有关installed.packages()所有包(基本或非基础)的信息的命令.但是我们如何才能让用户安装的东西具有这样的东西:

Package    Version
X          3.01
Y          2.0.1
Z          1.0.2
Run Code Online (Sandbox Code Playgroud)

对于所有用户安装的软件包(即您安装的软件包install.packages("X"))

packages r

27
推荐指数
4
解决办法
6万
查看次数

创建一个5x5矩阵,对角线为0

在R中,我想创建一个这样的5x5矩阵0,1,3,5,7:

     0    1    3    5    7

     1    0    3    5    7

     1    3    0    5    7 

     1    3    5    0    7 

     1    3    5    7    0
Run Code Online (Sandbox Code Playgroud)

所以显然我可以生成起始矩阵:

    z <- c(0,1,3,5,7)
    matrix(z, ncol=5, nrow=5, byrow = TRUE)
Run Code Online (Sandbox Code Playgroud)

但我不确定如何改变其0立场.我确定我必须使用某种for/in循环,但我真的不知道我到底需要做什么.

r matrix

24
推荐指数
6
解决办法
2187
查看次数

如何在ggplot2中绘制一个漂亮的箭头

我正在创建一个ggplot图表,我希望在两点之间有一些箭头.主要任务很容易完成geom_line(arrow = arrow()).但是,我想要一些"漂亮"的粗箭.调整箭头的大小size=没有用,因为它完全弄乱了箭头.我说明了我的问题:

创建一些示例数据和图:

 NAME <- c("A", "A", "B", "B", "C", "C")
 YEAR <- c(2016, 2011, 2016, 2011, 2016, 2011)
 YEAR <- as.factor(YEAR)
 VALUE <- c(1, 4, 1, 5, 2, 8)
 DATA <- data.frame(NAME, YEAR, VALUE)

ggplot(DATA, aes(x=VALUE, y=NAME)) + 
  geom_point(size=5, aes(colour=YEAR)) +
  geom_line(arrow = arrow(length=unit(0.30,"cm"), ends="first", type = "closed"))
Run Code Online (Sandbox Code Playgroud)

结果图看起来像这样:

plot1

现在我试图"加厚"箭头......

ggplot(DATA, aes(x=VALUE, y=NAME)) + 
  geom_point(size=5, aes(colour=YEAR)) +
  geom_line(arrow = arrow(length=unit(0.30,"cm"), ends="first", type = "closed"), size = 3)
Run Code Online (Sandbox Code Playgroud)

这是这里显示的结果:

plot2

我的问题:有没有办法绘制一些"美丽的"粗箭?

r arrows ggplot2

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

相同的种子,不同的操作系统,R中的不同随机数

我在两台机器和一台Linux服务器之间遇到了不一致的结果,直到我意识到修复种子有不同的效果.我R在所有这些中运行不同的版本,以上都是3.3.0.以下是示例:

Linux 1

> set.seed(10); rnorm(1)
[1] -0.4463588
> version
               _
platform       x86_64-pc-linux-gnu
arch           x86_64
os             linux-gnu
system         x86_64, linux-gnu
status
major          3
minor          3.0
year           2016
month          05
day            03
svn rev        70573
language       R
version.string R version 3.3.0 (2016-05-03)
nickname       Supposedly Educational
Run Code Online (Sandbox Code Playgroud)

Linux 2

> set.seed(10); rnorm(1)
[1] 0.01874617
> version
               _
platform       x86_64-pc-linux-gnu
arch           x86_64
os             linux-gnu
system         x86_64, linux-gnu
status
major          3
minor          4.2
year           2017
month          09
day            28
svn rev …
Run Code Online (Sandbox Code Playgroud)

random operating-system r random-seed

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

如何在向量内交换(转换)值

vetA <- c(1,2,1,2,1,3,4,1,2,3,2,1,4)
Run Code Online (Sandbox Code Playgroud)

有什么可能,所以我可以进行以下交换?交换:

  • 1 -->3
  • 2 -->4
  • 3 -->2
  • 4 -->1

我试过这个:

vetB <- as.factor(vetA)
levels(vetB) <- c(3,4,2,1)
vetA <- as.integer(vetB)

# because
print(vetB)
# [1] 3 4 3 4 3 2 1 3 4 2 4 3 1
#Levels: 3 4 2 1
Run Code Online (Sandbox Code Playgroud)

它没用.你能帮我个忙吗?

swap r vector

11
推荐指数
4
解决办法
935
查看次数

使用偏移量i(矢量化方法)拆分大小为n的块中的矩阵

我想将大小的矩阵分成大小的k x l块,n x n考虑到一个问题o(就像Mathematica的分区函数那样).

例如,给定矩阵之A类的

A <- matrix(seq(1:16), nrow = 4, ncol = 4)

     [,1] [,2] [,3] [,4]
[1,]    1    5    9   13
[2,]    2    6   10   14
[3,]    3    7   11   15
[4,]    4    8   12   16
Run Code Online (Sandbox Code Playgroud)

和块大小= 3,偏移= 1,我想要输出我得到的四个子矩阵

A[1:3, 1:3]
A[1:3, 2:4]
A[2:4, 1:3]
A[2:4, 2:4]
Run Code Online (Sandbox Code Playgroud)

如果offset等于2或3,则此示例的输出应该只是我得到的子矩阵

A[1:3, 1:3]
Run Code Online (Sandbox Code Playgroud)

我该如何对此进行矢量化?

r matrix vectorization

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

从R中的二进制矩阵中提取子矩阵

说二进制矩阵m:

      # [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
 # [1,]    0    0    0    0    0    0    0    0    0
 # [2,]    0    0    0    0    0    0    0    0    0
 # [3,]    0    0    0    1    1    1    1    0    0
 # [4,]    0    0    0    1    1    1    1    0    0
 # [5,]    0    0    0    1    1    1    1    0    0
 # [6,]    0    0    0    0    0    0    0    0    0
 # …
Run Code Online (Sandbox Code Playgroud)

r matrix

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

两个向量的所有可能组合,同时保持R中的顺序

比方说我有一个矢量,vec1另一个矢量命名vec2如下:

vec1 = c(4,1)
# [1] 4 1

vec2 = c(5,3,2)
# [1] 5 3 2
Run Code Online (Sandbox Code Playgroud)

是所有可能的组合是什么我正在寻找vec1vec2而向量元素的顺序被保留.也就是说,结果矩阵应该是这样的:

> res
      [,1] [,2] [,3] [,4] [,5]
 [1,]    4    1    5    3    2
 [2,]    4    5    1    3    2
 [3,]    4    5    3    1    2
 [4,]    4    5    3    2    1
 [5,]    5    4    1    3    2
 [6,]    5    4    3    1    2
 [7,]    5    4    3    2    1
 [8,]    5    3    4    1    2 …
Run Code Online (Sandbox Code Playgroud)

r vector

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

使用tryCatch和rvest来处理404和其他爬行错误

使用时检索h1标题时rvest,我有时会遇到404页.这将停止该过程并返回此错误.

open.connection(x,"rb")出错:HTTP错误404.

请参阅下面的示例

Data<-data.frame(Pages=c(
"http://boingboing.net/2016/06/16/spam-king-sanford-wallace.html",
"http://boingboing.net/2016/06/16/omg-the-japanese-trump-commer.html",
"http://boingboing.net/2016/06/16/omar-mateen-posted-to-facebook.html",
"http://boingboing.net/2016/06/16/omar-mateen-posted-to-facdddebook.html"))
Run Code Online (Sandbox Code Playgroud)

用于检索h1的代码

library (rvest)
sapply(Data$Pages, function(url){
 url %>%
 as.character() %>% 
 read_html() %>% 
 html_nodes('h1') %>% 
 html_text()
 })
Run Code Online (Sandbox Code Playgroud)

有没有办法包含一个参数来忽略错误并继续这个过程?

r try-catch rvest

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

是否可以在 Power BI 的 R Script Visual 中使用 R Plotly 库?

有没有人试过在 Power BI 的 R Script Visual 中使用PlotlyHighchart

当我在 R 脚本编辑器中尝试此操作并运行时:

library(ggplot2)
library(plotly)
x <- 1:5
y <- c(1, 3, 2, 3, 1)
plot_ly(x = dataset$period, y = dataset$mean, name = "spline", line = list(shape = "spline"))
Run Code Online (Sandbox Code Playgroud)

错误信息:

没有创建图像。R 代码不会导致创建任何视觉效果。确保您的 R 脚本生成 R 默认设备的绘图。

但在我的 R 桌面上运行完美。任何想法?

r highcharts plotly powerbi

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