r - data.table 在 R 中逐行应用函数
问题描述
我有一个接受参数的函数,我想将它应用于 data.table 中的每一行。
我的数据如下所示:
Row Temp Humidity Elevation
1 10 0.5 1000
2 25 1.5 2000
3 28 2.0 1500
我有一个功能
myfunc <- function(x, n_features=3){
# Here x represents each row of a data table.
# Feature names are important for me as my actual function is operating on feature names
return(x[,Temp]+x[,Humidity]+(x[,Elevation]*(n_features)))
}
我希望我的输出看起来像
Row Temp Humidity Elevation myfuncout
1 10 0.5 1000 3010.5
2 25 1.5 2000 6026.5
3 28 2.0 1500 4530
我试过df[, myfuncout := myfunc(x, n_features=3), by=.I]
了,但这没有用。另外,不确定我是否必须使用.SD
这里来完成这项工作......这里有什么关于我如何实现这一目标的输入吗?谢谢!
解决方案
如果是 a data.table
,我们可以使用
myfunc <- function(dt, n_features = 3) {
dt[, out := (Temp + Humidity) + (Elevation * n_features)]
dt
}
myfunc(df, 3)
-输出
df
# Row Temp Humidity Elevation out
#1: 1 10 0.5 1000 3010.5
#2: 2 25 1.5 2000 6026.5
#3: 3 28 2.0 1500 4530.0
推荐阅读
- javascript - NextJs 中所有页面的布局都会中断应用程序
- swift - 更改背景音乐闪避级别
- asp.net - 在身份服务器 4 中使用 Authorize 时,将 api 重定向到 Account/Login
- visual-studio-2019 - 如何在保存时激活浏览器重新加载?
- html - 打开语义 ui 模态时背景略有变化
- git - 查看 GIT 中过去的合并冲突
- android - 使用导航使用片段膨胀类布局时出错
- spring-boot - Spring Boot删除功能无法识别变量?
- python - 如何使用熊猫从列中删除重复值
- reactjs - 类型“未知”.ts(2339) 上不存在属性“appendChild”