由于我在R Session(8GB Windows PC)中不断达到内存大小限制,我开始remove加载大对象.但是一旦达到此限制,删除对象似乎无法正常工作.
所以,我想知道是否有办法获得R Session大小.我知道可以检索对象的大小(在这个帖子中看到).我想知道是否有办法计算完整的R Session大小(加载包,对象等).
谢谢!
我想知道如何停止警告:
summarise() has grouped output by 'Var'. You can override using the .groups argument.
当我使用时:
group_by(Var) %>% summarise(...).
Run Code Online (Sandbox Code Playgroud)
我会感谢任何帮助。
我正在尝试对我的用户定义分布进行蒙特卡罗模拟研究,并且我修改了我R在一篇文章中看到的另一个代码。我的R代码如下;
library(rootSolve)
library(Matrix)
library(bbmle)
alpha=4
beta=0.3
rho=2
lambda=0.5
theta=0.2
samp=1000
par1=c(alpha,beta,rho,lambda,theta)
####Define BXIIWG quantile
BXIIWG_quantile=function(alpha,beta,rho,lambda,theta,u){
f=function(x){
beta*x^alpha+lambda*log(1+x^rho)+log(1-u)
}
x=uniroot(f,c(0,100),tol=0.0001)$root
return(x)
}
####Define BXIIWG log-likelihood
BXIIWG_neglogl=function(alpha,beta,rho,lambda,theta){
-sum(log(alpha*beta*x^(alpha-1)*(1+x^rho)+rho*lambda*x^(rho-1)))+(lambda+1)*sum(log(1+x^rho))-n*log(1-theta)+beta*sum(x^alpha)+2*sum(log(1-theta*(1+x^rho)^(-lambda)*exp(-beta*x^alpha)))
}
####Define simulation process of BXIIWG
BXIIWG_simulation=function(size=c(25,50,100,200,400,800),samp,par1){
Mean=vector()
RMSE=vector()
Bias=vector()
for (iter_size in 1:length(size)){
coef1=matrix(NA,samp,5)
colnames(coef1)=c('alpha','beta','rho','lambda','theta')
for (nsamp in 1:samp){
tryCatch(
{
x1_BXIIWG=NULL
q=runif(size[iter_size],0,1)
x1=sapply(q,BXIIWG_quantile,
alpha=par1[1],beta=par1[2],rho=par1[3],lambda=par1[4],theta=par1[5])
###BXIIWG for x1
x1_BXIIWG<-mle2(BXIIWG_neglogl,
start=list(alpha=par1[1],beta=par1[2],rho=par1[3],lambda=par1[4],theta=par1[5]),
method="L-BFGS-B",data=list(x=x1),
lower=c(alpha=0,beta=0,rho=0,lambda=0,theta=0),
upper=c(alpha=Inf,beta=Inf,rho=Inf,lambda=Inf,theta=1),use.ginv=TRUE)
coef[nsamp,]=coef(x1_BXIIWG)
},error=function(e){}
)
}
Mean[length(size)*(0:4)+iter_size]=apply(coef1,2,mean,na.rm=TRUE)
RMSE[length(size)*(0:4)+iter_size]=apply((coef1-matrix(rep(par1,nsamp),
ncol=5,byrow=T))^2,2,function(x){sqrt(mean(x,na.rm=TRUE))})
}
Bias-as.vector(sapply(1:5,function(x){Bias[(length(size)*(x-1)+1):
(length(size)*x)]=Mean[(length(size)*(x-1)+1):(length(size)*x)]-par1[x]}))
samplesize=as.vector(t(mapply(rep,size,5)))
return(cbind(samplesize,Mean,RMSE,Bias))
}
BXIIWGsim1<-BXIIWG_simulation(25,1000,par1)
Mean1<-BXIIWGsim1$Mean
RMSE1<-BXIIWGsim1$RMSE …Run Code Online (Sandbox Code Playgroud) 我在那个帖子read.csv 并跳过 R 中的最后一列但没有找到我的答案,并尝试直接检查答案...但这不是正确的方法(感谢mjuarez花时间让我回到正轨.
原来的问题是:
我已经阅读了其他几篇关于如何使用 read.csv 导入 csv 文件但跳过特定列的文章。但是,我发现的所有示例的列都很少,因此很容易执行以下操作:
Run Code Online (Sandbox Code Playgroud)columnHeaders <- c("column1", "column2", "column_to_skip") columnClasses <- c("numeric", "numeric", "NULL") data <- read.csv(fileCSV, header = FALSE, sep = ",", col.names = columnHeaders, colClasses = columnClasses)
所有答案都很好,但不适用于我打算做的事情。所以我问我自己和其他人:
在一个功能中,
data <- read_csv(fileCSV)[,(ncol(data)-1)]可以工作吗?
我已经尝试在一行中R继续data,前 6 列中的所有 5 列,所以不是最后一列。为此,我想在列数中使用“-”,您认为可能吗?我怎样才能做到这一点?
谢谢!
我正在尝试使用sink函数保存增强的日志,如下面的代码:
require(xgboost)
require(R.utils)
data(iris)
train.model <- model.matrix(Sepal.Length~., iris)
dtrain <- xgb.DMatrix(data=train.model, label=iris$Sepal.Length)
xgb_grid = list(eta = 0.05, max_depth = 5, subsample = 0.7, gamma = 0.3,
min_child_weight = 1)
sink("evaluationLog.txt")
fit_boost <-xgb.cv(data = dtrain,
nrounds = 1000,
objective = "reg:linear",
eval_metric = "logloss",
params = xgb_grid,
colsample_bytree = 0.7,
early_stopping_rounds = 100,
nfold = 5,
prediction = TRUE,
maximize = FALSE
)
sink()
Run Code Online (Sandbox Code Playgroud)
但是我看不到"发生了什么",因为它不打印函数的输出和/或消息.
我的问题是如何才能检索.txt文件sink并查看函数(在这种情况下xgb.cv是什么)打印?
谢谢!
说我运行以下内容 lm
my.model = lm(distance ~ speed, data = my.data)
Run Code Online (Sandbox Code Playgroud)
我可以做以下事情来做一个元素预测
predict(my.model, speed = c(40))
Run Code Online (Sandbox Code Playgroud)
情况就是这样:我有一个lm,我知道它做了什么(它是速度距离的回归),但我不知道回归量被命名为速度.我怎么还能预测?
predict(my.model, ??? = c(40))
Run Code Online (Sandbox Code Playgroud)
我可以得到回归者的名字,names(my.model$coefficients)但我无法弄清楚如何将其传递给预测
predict(my.model, names(my.model$coefficients)[2] = c(40)) 不行
有什么建议?
谢谢!
我有一个data.framewith 变量var1 var2(两个字符串)和变量x, y, 和z。我想规范化 variables x,y并将z它们全部除以它们各自的第一个元素。
我试过:
df_ %>%
mutate_at(c("x", "y", "z"), funs(./.[1])) %>% head()
Run Code Online (Sandbox Code Playgroud)
但是,这将整列设置为 1。我怎样才能实现它除以第一个元素?
其次,什么是归一化添加到数据帧作为变量的最佳方式x_norm,y_norm,z_norm?
非常感谢,如果您需要更多信息,请告诉我。
我一直在 SO 中寻找一个关于如何在 R 中同时在一个目录中创建两个(或 n 个)子目录的线程,但只发现这不是我想要的。
我可以通过以下两行来完成:
dir.create(file.path(getwd(), "test"))
sapply(letters[1:2],
function(x) dir.create(file.path(getwd(), "test", paste0(x, "_test"))))
# a b
#TRUE TRUE
Run Code Online (Sandbox Code Playgroud)
我怎样才能在一行中完成它?
谢谢。
我正在尝试data.frame使用降序排列所有变量dplyr。我尝试过关注这篇文章和另一篇文章,但没有运气。
我可以通过使用来完成它sapply(my_data, function(x) sort(x, decreasing = T)),但是我想知道是否有办法dplyr。
谢谢。
预期输出:
## A tibble: 14 x 8
# mean_EDR total_EDR mean_ED total_ED meanEDGE totalEDGE PD SR
# <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
# 1 0.006364422 0.25457688 87.45347 3591.964 4.402291 190.8988 5012.058 45
# 2 0.004558913 0.18287734 85.17115 3585.592 4.334637 182.0548 5006.400 43
# 3 0.004354222 0.18235650 82.18129 3577.188 4.296272 180.4434 4847.001 42
# 4 0.003916397 0.17623788 …Run Code Online (Sandbox Code Playgroud) 我在R中遇到一个小问题,但是我不知道如何解决它。
我想使用cat在R控制台中使用中的sep参数打印消息cat。这是我尝试过的:
words <- c("foo", "foo2", "foo3")
cat("words not included:", "\n", words, sep = ",")
#words not included:,
#,foo,foo2,foo3
Run Code Online (Sandbox Code Playgroud)
如我们所见,逗号:在foo。之后插入。
然后我做了:
cat("words not included:", "\n", words, sep = ",", "\n")
#words not included:,
#,foo,foo2,foo3,
Run Code Online (Sandbox Code Playgroud)
我想要的输出是:
#words not included:
#foo,foo2,foo3
Run Code Online (Sandbox Code Playgroud)