![](/img/trans.png)
[英]How do I coerce a tibble dataframe column from double to time?
[英]Coerce specific column to “double” within a dataframe list
假设我有一个数据框列表
myList <- list(df1 = data.frame(A = as.character(sample(10)), B =
rep(1:2, 10)), df2 = data.frame(A = as.character(sample(10)), B = rep(1:2, 10)) )
我想强制每个 dataframe 中的 A 列加倍。
我正在努力:
myList = sapply(myList,simplify = FALSE, function(x){
x$A <- as.double(x$A) })
但这会返回强制值,甚至不会返回具有列名的列。
我也尝试过使用 dplyr 和 mutate_if,但没有成功
我们可以在基础lapply
中使用带有transform
的base R
myList2 <- lapply(myList, transform, A = as.double(A))
或者将map
与tidyverse
中的mutate
一起使用
library(dplyr)
library(purrr)
myList2 <- map(myList, ~ .x %>%
mutate(A = as.double(A)))
OP 代码中的问题是它没有返回数据,即“x”。
myList2 <- sapply(myList, simplify = FALSE,
function(x){
x$A <- as.double(x$A)
x
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.