我有一个包含多个数据帧的列表,它们都有一个名为&;year&;的变量。如何使用lapply检查每个数据框架内的年份类别?
我们可以通过循环list
并检查其class
来提取'year'列。对于sapply
,它返回vector
,如果我们使用lapply
,它将是list
输出
sapply(lst1, function(x) class(x$year))
对于R 4.1.0
, lambda函数可以被压缩
sapply(lst1, (x) class(x$year))
下面的例子显示:
- 如何检查类(与akrun相同)在这个例子中
numeric
- 将所有数据帧中的
year
列改为character
# example data:
df_list <- list(df1 = data.frame(year = c(2018, 2020, 2021)),
df2 = data.frame(year = c(1989, 1988, 1977)))
# check class (same as akruns just using lapply)
lapply(df_list, function(x) class(x$year))
# change the class of year columns in all dataframe to character
list1 <- lapply(df_list, function(x) mutate_at(x, "year", as.character))
# check again
lapply(list1, function(x) class(x$year))
输出:
> lapply(df_list, function(x) class(x$year))
$df1
[1] "numeric"
$df2
[1] "numeric"
>
> list1 <- lapply(df_list, function(x) mutate_at(x, "year", as.character))
>
> lapply(list1, function(x) class(x$year))
$df1
[1] "character"
$df2
[1] "character"