小编Adr*_*ian的帖子

如何使用grep()/ gsub()来查找完全匹配

string = c("apple", "apples", "applez")
grep("apple", string)
Run Code Online (Sandbox Code Playgroud)

这将为我提供所有三个元素的索引string.但我希望在单词"apple"上完全匹配(即我只想grep()返回索引1).

regex grep r word-boundary gsub

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

R:从列表中删除NULL元素

mylist <- list(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    123, NULL, 456)

> mylist
[[1]]
NULL

[[2]]
NULL

[[3]]
NULL

[[4]]
NULL

[[5]]
NULL

[[6]]
NULL

[[7]]
NULL

[[8]]
NULL

[[9]]
NULL

[[10]]
NULL

[[11]]
[1] 123

[[12]]
NULL

[[13]]
[1] 456
Run Code Online (Sandbox Code Playgroud)

我的列表有13个元素,其中11个是NULL.我想删除它们,但保留非空元素的索引.

mylist2 = mylist[-which(sapply(mylist, is.null))]
> mylist2
[[1]]
[1] 123

[[2]]
[1] 456
Run Code Online (Sandbox Code Playgroud)

这很好地删除了NULL元素,但是我不希望非空元素被重新索引,即,我想mylist2看起来像这样,其中非空条目的索引被保留.

> mylist2
[[11]]
[1] 123

[[13]]
[1] 456
Run Code Online (Sandbox Code Playgroud)

r

44
推荐指数
7
解决办法
4万
查看次数

R:如何从nlme调用中获取Hessian

library(nlme)
fm1 <- nlme(height ~ SSasymp(age, Asym, R0, lrc),
            data = Loblolly,
            fixed = Asym + R0 + lrc ~ 1,
            random = Asym ~ 1,
            start = c(Asym = -10311111, R0 = 8.5^4, lrc = 0.01),
            verbose = TRUE)

**Iteration 1
LME step: Loglik: -312.2787, nlminb iterations: 23
reStruct  parameters:
    Seed 
10.41021 
Error in nlme.formula(height ~ SSasymp(age, Asym, R0, lrc), data = Loblolly,  : 
  Singularity in backsolve at level 0, block 1
Run Code Online (Sandbox Code Playgroud)

我试图nlme通过观察粗麻布来研究为什么有些模型不能成功.有办法以某种方式提取这个矩阵吗?

我也在查看fdHess函数(也来自同一个pacakge),"使用有限差分评估一个近似Hessian和一个标量函数的梯度"这是否等同于函数中当前实现的内容nlme …

r nlme hessian-matrix

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

如何交换R中的列和行条目

library(data.table)
dat1 <- data.table(id = c(1, 2, 34, 99),
           class = c("sports", "", "music, sports", ""),
           hobby = c("knitting, music, sports", "", "", "music"))
> dat1
  id         class                   hobby
1  1        sports knitting, music, sports
2  2                                      
3 34 music, sports                        
4 99                                 music
Run Code Online (Sandbox Code Playgroud)

我有上面的数据集 ,dat1其中每一行对应一个唯一的id. 对于每个,或id的多个输入以逗号分隔。classhobby

我想交换此数据集的行和列,以便得到以下内容:

     input class hobby
1   sports 1, 34     1
2 knitting           1
3    music    34 1, 99
Run Code Online (Sandbox Code Playgroud)

在此数据集中,每一行对应一个唯一的inputfrom dat1。现在classhobby …

r data.table data-wrangling

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

R:如何标记箱线图的x轴

     apple=c(1,2,3,4,5)
     banana=c(5,4,3,2,1)
     watermelon=c(4,5,6,7,8)
     boxplot(apple, banana, watermelon)
Run Code Online (Sandbox Code Playgroud)

如果我要绘制这个,盒子图的x轴标记为1,2和3.我怎样才能将它们分别更改为"apple","banana"和"watermelon"?xlab=标记整个轴,但不标记单个箱图.我应该使用哪个命令/选项?

r

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

R:如何检查向量是上升还是下降

vector1 = c(2, 2, 2, 2, 2, 2)
vector2 = c(2, 2, 3, 3, 3, 3)
vector3 = c(2, 2, 1, 2, 2, 2)
Run Code Online (Sandbox Code Playgroud)

我想知道向量中的数字是上升/保持相同还是下降.因此,对于vector1vector2,它应该是TRUE,而对于vector3它应该是FALSE.简单地说,FALSE如果向量中存在回归,则应该返回.没有编写循环,有没有快速的方法来做到这一点?

r

15
推荐指数
2
解决办法
3606
查看次数

R:如何在每个data.frame列中总计NA的数量

为了计算整个data.frame中的NA数量,我可以使用sum(is.na(df),如何计算大数据框架的每列中的NA数量?我尝试过,apply(df, 2, function (x) sum(is.na(df$x))但似乎没有用.

r

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

子集化data.frame没有列名

> dput(test)
structure(list(MEMORY1 = c(7.5, 6, 6, 3.5, 5, 5), MEMORY2 = c(5, 
7.5, 3, 3.5, 5, 5), MEMORY3 = c(5, 3.5, 3, 3.5, 5, 2), MEMORY4 = c(2, 
1.5, 3, 3.5, 1, 2), MEMORY5 = c(7.5, 3.5, 3, 3.5, 5, 7), MEMORY6 = c(2, 
5, 7.5, 7.5, 5, 5), MEMORY7 = c(2, 1.5, 3, 3.5, 5, 2), MEMORY8 = c(5, 
7.5, 7.5, 7.5, 5, 8)), .Names = c("MEMORY1", "MEMORY2", "MEMORY3", 
"MEMORY4", "MEMORY5", "MEMORY6", "MEMORY7", "MEMORY8"), row.names = c(NA, 
6L), …
Run Code Online (Sandbox Code Playgroud)

r

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

R:如何以R降价为中心输出

我知道fig.align = 'center'如果我想把我的身材放在中心,我可以设定.但是,如果我想将输出集中在pdf文档中呢?

r r-markdown

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

R:实现我自己的梯度提升算法

我正在尝试编写自己的梯度提升算法。我知道有像这样的现有包gbmxgboost,但我想通过编写自己的包来了解算法的工作原理。

我正在使用iris数据集,我的结果是Sepal.Length(连续)。我的损失函数是mean(1/2*(y-yhat)^2)(基本上是前面有 1/2 的均方误差),所以我对应的梯度就是残差y - yhat。我将预测初始化为 0。

library(rpart)
data(iris)

#Define gradient
grad.fun <- function(y, yhat) {return(y - yhat)}

mod <- list()

grad_boost <- function(data, learning.rate, M, grad.fun) {
  # Initialize fit to be 0
  fit <- rep(0, nrow(data))
  grad <- grad.fun(y = data$Sepal.Length, yhat = fit)

  # Initialize model
  mod[[1]] <- fit

  # Loop over a total of M iterations
  for(i in 1:M){

    # Fit base learner (tree) …
Run Code Online (Sandbox Code Playgroud)

r machine-learning gradient-descent gbm boosting

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