为什么apply()在R中的数据框上不起作用?

wen

我有一个名为“成人”的数据框

> str(adult[, 1:2)
'data.frame':   32561 obs. of  15 variables:
 $ age      : int  39 50 38 53 28 37 49 52 31 42 ...
 $ worktp   : Factor w/ 9 levels " ?"," Federal-gov",..: 8 7 5 5 5 5 5 7 5 5 ...

> is.factor(adult[,1])
[1] FALSE

> is.factor(adult[,2])
[1] TRUE

一切正常,直到我使用

> apply(adult[,1:2], 2, function(x) is.factor(x))
age worktp 
FALSE  FALSE 

为什么我在worktp上得到假,其中is.factor()才给我TRUE?我真的需要这个apply()函数在我的数据框上工作。我应该使用其他一些与Apply相关的功能吗?

谢谢!

马克·赫克曼

apply会在处理数据之前将其转换为矩阵(请参阅中的“详细信息”部分?apply)。在此步骤中,因子信息将丢失。

d <- data.frame(num=1:4, fac=factor(1:4))
d[, 2]
[1] 1 2 3 4
Levels: 1 2 3 4        # levels, hence a factor

m <- as.matrix(d)
m[, 2]
[1] "1" "2" "3" "4"     # no levels anymore

apply(d, 2, is.factor)

  num   fac 
FALSE FALSE             # no factors as converted to matrix

为了得到你想要的东西,你可以使用 lapply

lapply(d, is.factor)
$num
[1] FALSE

$fac
[1] TRUE

或者 sapply

sapply(d, is.factor)
  num   fac 
FALSE  TRUE 

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么rownames()在R中的数据框上不起作用?

IsNull(),IsEmpty(),Application.WorksheetFunction.Istext()为什么在组合框上不起作用?

为什么数据绑定在 UserControl 上不起作用?

数据框上的回归在R中不起作用

为什么lm在R中修改后的data.frame上不起作用?

为什么数据断点在未对齐的地址上不起作用

为什么'ipconfig'在Windows 7上不起作用

为什么SETUID在Raspberry Pi上不起作用?

为什么模糊和聚焦在Safari上不起作用?

为什么WebHook的WebApi配置在POST上不起作用?

为什么Empty()在stdClass上不起作用

为什么FieldDoesNotExist在POST.get()上不起作用?

为什么 matplotlib 在 VSCode 上不起作用

为什么“加载事件在addEventListener()上不起作用”?

为什么push在此cookie数组上不起作用?

为什么.isascii()在Google colab上不起作用?

为什么.isascii()在Google colab上不起作用?

为什么HTMLunit在此https网页上不起作用?

为什么ProxyServer在chromedp GO上不起作用

为什么 saveStateInstance 在屏幕方向上不起作用?

为什么此switch语句在Angular上不起作用?

为什么对象分解在风格上不起作用?

为什么.htaccess在实时站点上不起作用?

为什么getExternalFilesDirs()在某些设备上不起作用?

为什么我的position:sticky在iOS上不起作用?

为什么ScrollTop位置在移动Safari上不起作用?

为什么width属性在我的桌子上不起作用?

为什么我的循环在GoogleSheets上不起作用?

为什么getDrawable()在某些Android设备上不起作用?