string = c("apple", "apples", "applez")
grep("apple", string)
Run Code Online (Sandbox Code Playgroud)
这将为我提供所有三个元素的索引string.但我希望在单词"apple"上完全匹配(即我只想grep()返回索引1).
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) 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 …
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。现在class和hobby …
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=标记整个轴,但不标记单个箱图.我应该使用哪个命令/选项?
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)
我想知道向量中的数字是上升/保持相同还是下降.因此,对于vector1和vector2,它应该是TRUE,而对于vector3它应该是FALSE.简单地说,FALSE如果向量中存在回归,则应该返回.没有编写循环,有没有快速的方法来做到这一点?
为了计算整个data.frame中的NA数量,我可以使用sum(is.na(df),如何计算大数据框架的每列中的NA数量?我尝试过,apply(df, 2, function (x) sum(is.na(df$x))但似乎没有用.
> 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) 我知道fig.align = 'center'如果我想把我的身材放在中心,我可以设定.但是,如果我想将输出集中在pdf文档中呢?
我正在尝试编写自己的梯度提升算法。我知道有像这样的现有包gbm,xgboost,但我想通过编写自己的包来了解算法的工作原理。
我正在使用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)