R 对角色应用强制

R 对角色应用强制,r,apply,R,Apply,我有一个像这样的dataframe列 > class(df$Released) [1] "Date" 当我在向量上使用apply时,传递给FUN的值被强制为character > apply(df[1, ], 1, function(x) class(x['Released'])) 1 "character" 发生了什么事?试试这个: sapply(df, class) 原因: 在运行函数类()之前,使用apply()将数据框更改为.matrix(),在此

我有一个像这样的dataframe列

> class(df$Released)
[1] "Date"
当我在向量上使用
apply
时,传递给FUN的值被强制为character

> apply(df[1, ], 1, function(x) class(x['Released']))
          1 
"character"
发生了什么事?

试试这个:

sapply(df, class)
原因:


在运行函数类()之前,使用apply()将数据框更改为.matrix(),在此过程中,所有列都将返回字符。同时,使用sapply()并不是将其作为.matrix()步骤,因为它设计用于处理向量,所以类将被准确显示。

您告诉它跨行应用(在apply的第二个参数中标记为1),并将其作为一行输入,也为1[df[1,]然后问它“Released”列的类…所以这个apply只看“Released”的第一个实例,因为你是如何定义apply和函数的。运行
str(在df$Released[1])
看看它是否与你的字符输出一致……同样有趣的是
df[1,]
仍然是一个数据帧。
apply
将其
X
参数强制为一个矩阵,当它是一个数据帧时。因此,请查看
as.matrix(df[1,])
以了解发生了什么。您还可以阅读
帮助(apply)
@user20650这是我一直在寻找的答案。这个问题是重复的。好的,结束了。干杯@cosmos1990你能解释一下你的答案吗?@cosmos1990-当然,请看上面的编辑。