我想在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) 我需要创建一个变量并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)
我在网上搜索了很多,但找不到答案,非常感谢一些帮助。
我使用插入符号包创建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) 我创建了以下可重现的示例:
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)