r - 如何从R中df的列中粘贴数字+ 1
问题描述
我有一个包含一些信息的 df,其中我创建了一些测试用例。我想将测试用例粘贴到一个 SQL 语句中,并为每个用例添加一个特定数字 +1。
我首先创建测试用例:
z <- data.frame(X = c('1','0', '1','1', '1'), Y = c('1','0', '1','0', '1'))
z <- as.data.frame(sapply(1:ncol(z), function(x)
ifelse(z[[x]] != '?', paste(colnames(z)[x], ' = ', z[[x]]),'')))
z$testcases <- do.call(paste, c(z, sep=" AND "))
我尝试通过我创建的 +1 函数将数字“1200”加 1,但是我不知道如何让 R 使用第一个数字,然后将数字 + 1 粘贴到下一行:
add_1 <- function(x) {
y <- x+1
return(y)
}
id_str <- 1200
z$test_sql <- paste0("WHEN ", z$testcases , " THEN ", "'", id_str + add_1(id_str), " passed","'")
#expected output for z$test_sql:
z$test_sql
[1] "WHEN X = 1 AND Y = 1 AND X = 1 & Y = 1 THEN '1200 passed'"
[2] "WHEN X = 0 AND Y = 0 AND X = 0 & Y = 0 THEN '1201 passed'"
[3] "WHEN X = 1 AND Y = 1 AND X = 1 & Y = 1 THEN '1202 passed'"
[4] "WHEN X = 1 AND Y = 0 AND X = 1 & Y = 0 THEN '1203 passed'"
[5] "WHEN X = 1 AND Y = 1 AND X = 1 & Y = 1 THEN '1204 passed'"
解决方案
z$test_sql <- paste0("WHEN ",z$V1," AND ",z$V2," AND ",z$testcases," THEN ","'",id_str+0:(nrow(z)-1)," passed","'")
test_sql
1 WHEN X = 1 AND Y = 1 AND X = 1 AND Y = 1 THEN '1200 passed'
2 WHEN X = 0 AND Y = 0 AND X = 0 AND Y = 0 THEN '1201 passed'
3 WHEN X = 1 AND Y = 1 AND X = 1 AND Y = 1 THEN '1202 passed'
4 WHEN X = 1 AND Y = 0 AND X = 1 AND Y = 0 THEN '1203 passed'
5 WHEN X = 1 AND Y = 1 AND X = 1 AND Y = 1 THEN '1204 passed'
推荐阅读
- paypal - 是否可以在不接触我的贝宝账户的情况下将资金从一个贝宝账户转移到另一个账户,但付款发生时我会收到通知?
- tensorflow - tensorflow.js 二维输入?
- swift - 在 FirebaseFirestoreSwift 中处理 documentID 真的很令人困惑
- javascript - 使用钩子更新图表组件中的 tvWidget
- xml-parsing - 如何读取格式不正确的 xml 文件?
- javascript - 使用 Draft.js 反应和 Electron:“未定义全局”
- reactjs - ReactJS 和 Firebase:我的 Firebase 托管网站无法从 static/css 目录加载资源
- html - 悬停类元素时显示 div
- java - JCombobox - 更改 JTable 中的值
- python-3.x - 无法在 Python 3.9(Windows、Ubuntu)中安装 PyAudio