小编use*_*289的帖子

R data.table计算直到达到值的行

我想在data.table中返回一个新列,该列显示向下的行数,直到达到低于当前值(Temp)的值.

library(data.table)
set.seed(123)
DT <- data.table( Temp = runif(10,0,20) )
Run Code Online (Sandbox Code Playgroud)

这就是我希望它看起来的样子:

set.seed(123)
DT <- data.table(
        Temp = runif(10,0,20),
        Day_Below_Temp = c("5","1","3","2","1","NA","3","1","1","NA")
)
Run Code Online (Sandbox Code Playgroud)

r data.table

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

R 使用paste0()在分配()之后删除变量

我需要创建一个变量并assign()为其指定一个动态名称。我稍后需要删除该变量。

day_no <- 1
df <- data.frame( a = 1:3, b = 4:6 )
assign( paste0( 'newdf_' ,day_no ), df )
Run Code Online (Sandbox Code Playgroud)

这很好用。

麻烦在于事后删除变量。我努力了:

rm( paste0( 'newdf_', day_no ) )
Run Code Online (Sandbox Code Playgroud)

或者:

rm( parse( paste0( 'newdf_', day_no ) ) )
Run Code Online (Sandbox Code Playgroud)

但是我收到此错误消息:

Error in rm(parse(paste0("newdf_", day_no))) : 
... must contain names or character strings
Run Code Online (Sandbox Code Playgroud)

我在网上搜索了很多,但找不到答案,非常感谢一些帮助。

r

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

从最佳R Caret模型中提取胜出的RMSE

我使用插入符号包创建nnet模型,并使用以下代码提取预测值:

nnet<-predict(my_model, newdata = my_new_data) 
nnet
[1] -0.1468207
Run Code Online (Sandbox Code Playgroud)

我还创建以下输出,从而可以查看最佳模型参数,如下所示:

Resampling results across tuning parameters:

  size  decay  RMSE        Rsquared   RMSE SD      Rsquared SD
  10    0.001  0.01867841  0.4789708  0.002538599  0.12778927 
  10    0.100  0.02349088  0.1233067  0.001859455  0.10188046 
  12    0.001  0.01826047  0.5059824  0.002630588  0.12962511 
  12    0.100  0.02348553  0.1238252  0.001890646  0.09851303 
  15    0.001  0.01795350  0.5289120  0.003021449  0.13908835 
  15    0.100  0.02318972  0.1429446  0.001932714  0.11156927 

RMSE was used to select the optimal model using  the smallest value.
The final values used for the model were size = …
Run Code Online (Sandbox Code Playgroud)

r r-caret

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

R data.table累积和函数

我创建了以下可重现的示例:

library(data.table)
Col_1 <- 0.05
Col_2 <- c( "B", "A", "C", "B", "C", "A", "C", "B", "B", "A" )
Col_3 <- 1000
Col_4 <- ""
data <- data.frame( Col_1, Col_2, Col_3, Col_4 ) 
mydata.table <- as.data.table( data )[ , list( Col_1, Col_2, Col_3, Col_4 ) ]
Col1 <- "Col_1"; Col2 <- "Col_2"; Col3 <- "Col_3"; Col4 <- "Col_4"
mydata.table[, (Col4) := ifelse( get( Col2 ) == "A" , get( Col1 ) * get( Col3 ), "0" ) ]
mydata.table[ , …
Run Code Online (Sandbox Code Playgroud)

r cumsum data.table

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

标签 统计

r ×4

data.table ×2

cumsum ×1

r-caret ×1