r - 在 ifelse R 中粘贴0
问题描述
我尝试在 ifelse() 中使用 paste0 在数据表中创建条件新变量。我使用的代码如下:
data[, paste0("inc_2014_",i) := ifelse(paste0("testvar",i) == 2014, 1, 0)]
这不起作用。没有错误消息,但 inc_2014_i 的值(在我的测试用例中为 inc_2014_1)都是 0,而应该是几百个 1。
如果我测试
data[, paste0("inc_2014_",i) := ifelse(testvar1 == 2014, 1, 0)]
它工作正常。
如果我测试
paste0("testvar",i)
我得到正确的变量作为输出。
我究竟做错了什么?
解决方案
您需要遍历列来定义 i,也许您可以尝试:
for(i in 1:length(grep("inc_2014_", colnames(data))))
{
data[, paste0("inc_2014_",i) := ifelse(paste0("testvar",i) == 2014, 1, 0)]
}
推荐阅读
- c++ - 为什么不能将模板引用类型用作模板类型别名参数?
- javascript - 插件在带有 React JS 的 Webpack 中不起作用
- android - 如何在颤动中将徽章计数添加为BottomNavigationBarItem的一部分
- python - 当我尝试安装 discord.py 它给了我错误
- python - Pandas Groupby - 如果多行超过另一列中的值,则选择一列中具有最高值的行
- java - Spring Security 4 在 Grails 4.0.0 中使用 sha256 给出的不同哈希值
- java - 不能在Java中的另一个类中使用类方法
- python - 将文件读入列表并用 Python 中的值替换变量
- sql - 使用max从多个表中选择数据?
- javascript - 使用谷歌距离矩阵 API 计算距离,除了少数几个查询外,几乎所有查询都运行良好