小编Jot*_* eN的帖子

R中两个向量之间的差异

我有两个向量:

a <- c(1, 1, 3, 4, 5, 7, 9)
b <- c(2, 3, 4, 6, 8, 2)
Run Code Online (Sandbox Code Playgroud)

我想找到第二个向量中的数字,它们不在第一个向量中:

dif <- c(2, 6, 8)
Run Code Online (Sandbox Code Playgroud)

我尝试过很多不同的方法(比如合并,不同类型的连接(dplyr包),setdiff,比较(比较包)),但我还是找不到办法.

diff r vector

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

如何在插入包中制作树形图?

我正在使用插入包来使用rpart包对数据建模.

library('caret')
data(iris)
formula <- as.formula(Species ~.)
t <- train(formula,iris,method = "rpart",cp=0.002,maxdepth=8)
plot(t)
Run Code Online (Sandbox Code Playgroud)

结果我得到了对象't',我试图绘制这个对象来获得树图.但结果看起来像这样: 在此输入图像描述

有没有办法从插入火车对象制作树图?

plot r rpart r-caret

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

时间序列 - 数据分割和模型评估

我试图使用机器学习来根据时间序列数据进行预测.在其中一个stackoverflow问题(R中的CARET包中的createTimeSlices函数)是使用createTimeSlices进行模型训练和参数调整的交叉验证的示例:

    library(caret)
    library(ggplot2)
    library(pls)
    data(economics)
    myTimeControl <- trainControl(method = "timeslice",
                                  initialWindow = 36,
                                  horizon = 12,
                                  fixedWindow = TRUE)

    plsFitTime <- train(unemploy ~ pce + pop + psavert,
                        data = economics,
                        method = "pls",
                        preProc = c("center", "scale"),
                        trControl = myTimeControl)
Run Code Online (Sandbox Code Playgroud)

我的理解是:

  1. 我需要将数据拆分为训练和测试集.
  2. 使用训练集进行参数调整.
  3. 在测试集上评估获得的模型(使用R2,RMSE等)

因为我的数据是时间序列,我想我不能使用bootstraping将数据分成训练和测试集.所以,我的问题是:我是对的吗?如果是这样 - 如何使用createTimeSlices进行模型评估?

r time-series r-caret

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

Rmarkdown word文档中的文本对齐

当我在Rmarkdown中创建word文档时,文本始终是左对齐的: 在此输入图像描述

是否有可能(以及如何)证明Rmarkdown中的文本是正确的?

r ms-word pandoc knitr r-markdown

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

如何在rmarkdown中引用两次到单个脚注?

我试着在文本的几个地方引用一个单脚注.但是,通过下面的代码,我有两个相同内容的脚注.

---
title: "My document"
output: html_document
---

One part of the text [^1].

Two pages later [^1].

[^1]: My footnote
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

是否可以使用不止一次引用特定脚注rmarkdown

r knitr r-markdown bookdown

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

将 POLYGON 聚合为 MULTIPOLYGON 并保留 data.frame

我有一个sfPOLYGON 几何类型的对象。我想使用分组属性 (group_attr) 将这些多边形聚合到 MULTIPOLYGON 中,并将新的 MULTIPOLYGON 对象与属性表连接起来。因此,作为结果,我将拥有一个sf两行三列的对象(group_attr、second_attr、geometry)。我已经尝试过使用st_cast- 它适用于sfc对象,但不适用于sf对象。是否可以使用sf包来做到这一点?

p1 <- rbind(c(0,0), c(1,0), c(3,2), c(2,4), c(1,4), c(0,0))
pol1 <-st_polygon(list(p1))
p2 <- rbind(c(3,0), c(4,0), c(4,1), c(3,1), c(3,0))
pol2 <-st_polygon(list(p2))
p3 <- rbind(c(4,0), c(4,1), c(5,1), c(5,0),c(4,0))
pol3 <-st_polygon(list(p3))
p4 <- rbind(c(3,3), c(4,2), c(4,3), c(3,3))
pol4 <-st_polygon(list(p4))

d <- data.frame(group_attr = c(1, 1, 2, 2), 
                second_attr = c('forest', 'forest', 'lake', 'lake'))
d$geometry <- st_sfc(pol1, pol2, pol3, pol4)
df<- st_as_sf(d)
plot(df)
df …
Run Code Online (Sandbox Code Playgroud)

aggregate r spatial r-sf

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

如何逆转R中的反双曲正弦变换?

使用反双曲正弦变换的变换可以使用这个简单的函数在R中完成:

ihs <- function(x) {
    y <- log(x + sqrt(x ^ 2 + 1))
    return(y)
}
Run Code Online (Sandbox Code Playgroud)

但是,我找不到扭转这种转变的方法.所以我的问题是:如何反转R中的反双曲正弦变换?

statistics r

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

更改 R 方图中的标签位置(决策/回归树)

partykit包很好地表示了决策树。我遇到的唯一问题是标签很长然后它们重叠。是否可以移动这些标签以防止它(见下图中的蓝色箭头)?

library("rpart")
library("partykit")
rp <- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis)
party_rp <- as.party(rp)

plot(party_rp)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

plot r party decision-tree

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

将两个data.frames合并为替换

我有两个数据集.第一个较小,但有更精确的数据.我需要加入它们,但是:1.如果我在Data1中有一些数据 - 我只使用这些数据.2.如果我没有在Data1中获取数据,但它们在Data2中 - 我只使用Data2中的数据.

Data1 <- data.frame(
    X = c(1,4,7,10,13,16),
    Y = c("a", "b", "c", "d", "e", "f")
)

Data2 <- data.frame(
    X = c(1:10),
    Y = c("a", "b", "c", "d", "e", "f", "g", "h", "i", "j")
)
Run Code Online (Sandbox Code Playgroud)

所以我的data.frame应该是这样的:

DataJoin <- data.frame(
    X = c(1,4,7,10,13,16,7,8,9,10),
    Y = c("a", "b", "c", "d", "e", "f", "g", "h", "i", "j")
)
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?我试过以某种方式选择合并形式基础包和data.table包,但我不能让它发生,因为我喜欢.

merge join r dataframe data.table

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

如何在RMarkdown 2中编写学位符号?

我正在使用Rmarkdown 2和knit PDF编写一些包含描述的代码.

我一直在尝试很多方法来内联写一个度数符号:

  • 乳胶包:siunitx的\ ang
  • Latex包:textcomp的\ textdegree
  • 乳胶:\ circ

还有许多可能的RMarkdown符号,例如:

  • $$\textdegree $$或$\textdegree $

但没有任何工作.有没有办法在RMarkdown 2中编写学位符号并将其转换为PDF?

编辑(2014年8月18日):

好的,我发现了问题所在.如果您在正常句子或第一级列表中使用\ circ,则可以.但是当我尝试在二级列表中使用\ circ时 - 它不起作用.

在此输入图像描述

pdf latex r knitr r-markdown

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

如何更改RMarkdown2演示文稿中的字体?

我正在使用RStudio RMarkdown2 ioslides_presentation.当我使用非英文字母时,比如"ę",它看起来非常糟糕:

在此输入图像描述

如何轻松更改RMarkdown2演示文稿中的字体?

html r knitr r-markdown

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

R gstat中的空间插值,不显示消息

当我使用gstat包在R中进行插值时,会出现类似“ [反距离加权插值]”或“ [普通或加权最小二乘预测]”的消息。例如:

library('sp')
library('gstat')
data(meuse)
coordinates(meuse) = ~x + y 
data(meuse.grid)
coordinates(meuse.grid) = ~x + y 
gridded(meuse.grid) <- TRUE
zn.tr1 <- krige(log(zinc) ~  x + y , meuse, meuse.grid)
Run Code Online (Sandbox Code Playgroud)

[普通或加权最小二乘预测]

如何禁用该消息?

gis r spatial gstat

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

如何读取R中的卡住数据?

我有一些用空格分隔的数字数据.我尝试使用read.table在R中读取它,但是我遇到了一些行问题,其中缺少空间分隔符.很多变量都粘在了一起.如何正确读取数据?我试图改变一些read.table参数,但这还不够.

原始数据如下:https: //dl.dropboxusercontent.com/u/74190377/data.txt

示例数据如下所示:

structure(list(id = c("60019660101", "60019660102", "60019660103", 
"60019660104", "60019660105", "60019660106", "60019660107", "60019660108", 
"60019660109", "60019660110", "60019660111", "60019660112", "60019660113", 
"60019660114", "60019660115", "60019660116", "60019660117", "60019660118", 
"60019660119-10.6-12.4-11.9-11.6"), name1 = c("4.3", "7.4", "5.8", 
"4.3", "-3.5-12.9", "-6.6-13.3", "-5.7", "-5.0-11.4", "-7.5-12.0", 
"-8.8-15.3-11.5-19.5", "-9.8-16.4-13.1-22.3", "-8.9-17.4-10.9-20.0", 
"-7.3", "-5.8-10.5", "-5.4-13.6", "-9.4-20.4-14.4-26.3", "-7.9-15.6-10.3-19.4", 
"-8.7-11.2-10.5-16.0", "1.3"), name2 = c(".7", "3.8", "3.0", 
"-4.1", "-8.6", "-8.6-16.3", "-7.5", "-8.9-11.0", "-9.6-17.6", 
".0", ".6", "2.4", "-9.2", "-6.9", "-8.3", ".0", "1.2", ".8", 
"34-99.0"), name3 = c("3.4", "5.5", "4.2", "-1.9", "-5.6", "6.1", 
"-6.6", "1.8", "1.6", …
Run Code Online (Sandbox Code Playgroud)

r dataframe

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