【发布时间】:2012-01-02 03:11:42
【问题描述】:
我在对数据框执行简单函数时遇到问题,我不确定是列的数据类型,还是数据框中的错误数据。
我将 SQL 查询导出到 CSV 文件中,然后将其加载到数据框中,然后附加它。
df <-read.csv("~/Desktop/orders.csv")
Attach(df)
当我完成并运行 str(df) 后,我得到了:
$ AccountID: Factor w/ 18093 levels "(819947 row(s) affected)",..: 10 97 167 207 207 299 299 309 352 573 ...
$ OrderID : int 1874197767 1874197860 1874196789 1874206918 1874209100 1874207018 1874209111 1874233050 1874196791 1875081598 ...
$ OrderDate : Factor w/ 280 levels "","2010-09-24",..: 2 2 2 2 2 2 2 2 2 2 ...
$ NumofProducts : int 16 6 4 6 10 4 2 4 6 40 ...
$ OrderTotal : num 20.3 13.8 12.5 13.8 16.4 ...
$ SpecialOrder : int 1 1 1 1 1 1 1 1 1 1 ...
尝试运行以下函数,这是我得到的:
> length(OrderID)
[1] 0
> min(OrderTotal)
[1] NA
> min(OrderTotal, na.rm=TRUE)
[1] 5.00
> mean(NumofProducts)
[1] NA
> mean(NumofProducts, na.rm=TRUE)
[1] 3.462902
我有两个关于这个数据框的问题:
- 我的列数据类型是否正确?数字与整数与小数。
- 有没有一种方法可以查看数据集以找到需要使用 na.rm=TRUE 来使函数工作的行?我想知道有多少等等。
【问题讨论】:
-
将列名暴露给全局环境的常用函数是 attach(df),那么您是使用了不同的函数还是拼错了?
-
@DWin 你是说
attach()还是Attach()? -
是的。在 R Attach() 中不是基本函数。因此,如果它有效,它必须来自其他包。