数据框列的套用和套用之间的区别?

基思·休吉特(Keith Hughitt)

有人可以解释一下数据框apply()如何sapply()操作之间的区别吗?

例如,当尝试在数据框中查找每个列的类时,我的第一个倾向是apply在这些列上使用

> apply(iris, 2, class)
Sepal.Length  Sepal.Width Petal.Length  Petal.Width      Species 
 "character"  "character"  "character"  "character"  "character" 

但是,由于某些列是数字列,因此这是不正确的:

> class(iris$Petal.Length)
[1] "numeric"

在Google上进行的快速搜索找到了此解决方案该解决方案使用sapply而不是apply

> sapply(iris, class)
Sepal.Length  Sepal.Width Petal.Length  Petal.Width      Species 
   "numeric"    "numeric"    "numeric"    "numeric"     "factor"

在这种情况下,sapply将隐式转换iris为列表,然后将该函数应用于列表中的每个条目,例如:

> class(as.list(iris)$Petal.Length)
[1] "numeric"

我仍然不清楚的是为什么我最初的尝试apply没有奏效。

基思·休吉特(Keith Hughitt)

似乎经常是这样,我在编写问题的过程中就找到了问题的答案。如果其他人有相同的问题,请在此处发布答案。

详细了解?apply状态:

如果“ X”不是数组,而是具有非空“ dim”值的类的对象(例如数据框),则“ apply”会尝试通过“ as.matrix”将其强制到数组二维(例如,数据框)或通过“ as.array”。

因此,就像在操作之前sapply将数据帧转换为一样,将数据帧转换为也是由于矩阵不能具有混合类型,并且至少有一列包含非数字数据(),因此所有内容都变为字符数据:listapplymatrixSpecies

> class(as.matrix(iris)[,'Petal.Length'])
[1] "character"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在pandas数据框中的其他列中找到列值,并套用?

来自分类Dev

套用,套用和膝部返回NULL

来自分类Dev

熊猫数据框生成具有不同行信息的列,但没有套用功能

来自分类Dev

合并循环和套用

来自分类Dev

将数据框列表套用到子集并覆盖dfs

来自分类Dev

在嵌套用户控件之间绑定数据

来自分类Dev

某些列在熊猫数据框之间的区别

来自分类Dev

套用几次

来自分类Dev

在数据帧或矩阵上套用()优化()?

来自分类Dev

从嵌套用户控件(MVVM)导出数据

来自分类Dev

引用类型和引用之间的区别

来自分类Dev

ISR和函数调用之间的区别?

来自分类Dev

在r中打印列名称套用并另存为数据框上的新列

来自分类Dev

将行分配给来自不同数据帧的列(套用操作)

来自分类Dev

在r中打印列名称套用并另存为数据框上的新列

来自分类Dev

将功能套用至Pandas资料框栏

来自分类Dev

pandas 数据框混淆了 .count 和 .sum 之间的区别

来自分类Dev

系列与数据框之间的区别

来自分类Dev

核心数据与NSUserDefaults-notes应用之间的区别

来自分类Dev

如何将套用应用于数据列表控件

来自分类Dev

Clojure-引用和语法引用之间的区别

来自分类Dev

线程隔离和信号隔离调用之间的区别

来自分类Dev

使用之间的区别?和:param在prepare语句中

来自分类Dev

Gemfile:github参考中的分支和引用之间的区别

来自分类Dev

镜头的观看和使用之间有什么区别?

来自分类Dev

Rust中指针和引用之间的区别

来自分类Dev

慢系统调用和快速系统调用之间的区别

来自分类Dev

在C#中使用和.Dispose()调用之间的区别

来自分类Dev

Vala中原始指针和弱引用之间的区别?

Related 相关文章

热门标签

归档