当相应的列>0时,我需要将一些数据列设置为NA。
(x<-data.frame(x1=(1:4),map.x1=c(0,0,7,0),x2=c(2,2,2,2),map.x2=c(0,7,0,0)))
mutate(x, x1=ifelse(map.x1>0, NA, x1))
mutate_at(x, vars(starts_with("x")), function(v) {
m.name <- paste0("map.", deparse(substitute(v)))
ifelse(get(m.name)>0, NA, v)
)
}
我也在考虑重塑,这样我就可以做一个变异。这里最好的做法是什么?
下面是一种获得所需输出的方法。不需要编写自定义函数。重新塑造文件应该就足够了。
library(tibble)
library(dplyr)
library(stats)
# creating dataframe with proper names
x <-
tibble::as_data_frame(cbind(
x_1 = c(1:4),
map.x_1 = c(0, 0, 7, 0),
x_2 = c(2, 2, 2, 2),
map.x_2 = c(0, 7, 0, 0)
)) %>%
tibble::rownames_to_column(df = ., var = 'id')
# converting to long format
x_long <- stats::reshape(
as.data.frame(x),
timevar = "level",
varying = dput(as.character(as.vector(names(
x[, base::grep("^x|^map", names(x))]
)))),
direction = "long",
idvar = c("id"),
sep = "_"
)
#> c("x_1", "map.x_1", "x_2", "map.x_2")
# converting the dataframe based on condition
x_long %>%
group_by(.data = ., level) %>%
dplyr::mutate(.data = .,
x = base::ifelse(test = map.x > 0,
yes = NA,
no = x))
#> # A tibble: 8 x 4
#> # Groups: level [2]
#> id level x map.x
#> <chr> <dbl> <dbl> <dbl>
#> 1 1 1.00 1.00 0
#> 2 2 1.00 2.00 0
#> 3 3 1.00 NA 7.00
#> 4 4 1.00 4.00 0
#> 5 1 2.00 2.00 0
#> 6 2 2.00 NA 7.00
#> 7 3 2.00 2.00 0
#> 8 4 2.00 2.00 0
在2018-02-14由reprex包(V0.1.1.9000)创建。
问题内容: 我的MySQL数据库中有这些表: 通用表: Facebook表: 首席表: 基本上,常规表包含一些( 显然 )常规数据。基于generalTable.scenario,您可以在其他两个表中查找更多详细信息,这些表在某些熟悉的列中(例如,expiresAt),而在其他一些列中则不然。 我的问题是,如何仅通过一个查询就可以获取generalTable和正确的明细表的联接数据。 所以,我想这
问题内容: 我是Swift的新手,我已经遍历了一些教程,其中许多教程使用同一个名称多次定义了一个函数。 我已经习惯了其他编程语言,否则将无法执行此操作。 因此,我检查了官方的Swift手册,还检查了override关键字,以了解可以得到的结果,但是仍然无法理解以下代码: 从我看到的函数tableView设置在第1行和第5行,我注意到的唯一区别是第一个tableView函数返回,而第二个函数返回(U
我正在使用的数据库有许多具有相同列但(显然)具有不同表名的表(不是我设计的)。例如(这些是数据库表名): 有没有可能用JPA和Hibernate将这些映射到一个Java类实体?类的名称是,然后在使用它时传入例如,以便对象使用表? 还是只使用普通的、普通的Java对象来完成这样的任务更好? 谢谢你!
我正在运行以下JOOQ查询: table和joinTable都有id作为主键名称,但最终获取实体类包含joinTable的id和table的其余列。如果我重新排序表,结果相似,我有表的ID和joinTable的其余列。
问题内容: 我试图找到具有重复值,但仅基于选定的列数,而不是单个列或整个行的行。例如,如果我的表如下所示: 我的问题是: 查找行的“地址和状态”字段与另一行的“地址和状态”字段匹配的行的所有ID。 该查询的答案将是: 有任何想法吗? 意见建议: 如何从单个表中选择同一行中的多列值 问题答案: 请尝试以下方法:
我有一个示例数据集,如下所示 Col1 Col2 Col3 A 1,2,3 A123 A 4,5 A456 A 1,2,3 A456 A 4,5 A123 我参考了一些解决方案,并尝试了以下方法。但它只追加单个列。