在R中,我用janitor::tabyl来生成因子变量Mp的频率表.

data_mp <- janitor::tabyl(data, Mp, show_na = TRUE)

它给了我:

Mp n percent valid_percent
FCA 4848 5.66% 6.38%
FCA-TESLA 6629 7.74% 8.72%
FCA ITALY SPA 8700 10.16% 11.44%
FIAT GROUP AUTOMOBILES SPA 451 0.53% 0.59%
FORD-VOLVO 2780 3.25% 3.66%
HYUNDAI 4609 5.38% 6.06%
MERCEDES-BENZ 7366 8.60% 9.69%
TATA MOTORS JAGUAR LAND ROVER 4832 5.64% 6.36%
VW-SAIC 9289 10.85% 12.22%
VW GROUP PC 26526 30.98% 34.89%
NA 9606 11.22% NA

Now I would like to use the number of NA observations and its percentage.
I tried with data_mp["NA", "n"] but it returns me NA.

How do you return the values in the 100 row of a factor column?

Edit

I managed to recover the number of observations by doing: data_mp[is.na(data_mp$Mp),"n"].
But I'm not sure this is the right way.

推荐答案

它不是行名,而是列‘MP’中的值,因此我们用$[[提取列‘MP’,应用is.na(以判断NA行,而不是== "NA"),并将其用作行索引

数据_mp[is.na(数据_mp$Mp), "n"]
[1] 31

数据

数据 <- 数据.frame(Mp = sample(c(LETTERS[1:10], NA), 300, replace = TRUE))
数据_mp <- janitor::tabyl(数据, Mp, show_na = TRUE)

R相关问答推荐

在通过最大似然估计将ODE模型与数据匹配时,为什么要匹配实际参数的转换值?

从API中抓取R数据SON

计算R中的威布尔分布的EDF

在垂直轴中包含多个ggplot2图中的平均值

有没有一个R函数允许你从一个数字变量中提取一个数字,而不考虑它的位置(不仅仅是第一个或最后一个数字?

如何使用R对每组变量进行随机化?

R中的哈密顿滤波

创建列并对大型数据集中的特定条件进行成对比较的更高效程序

在具有多个响应变量的比例堆叠条形图上方添加总计

以不同于绘图中元素的方式对GG图图例进行排序

如何筛选截止年份之前最后一个测量年度的所有观测值以及截止年份之后所有年份的所有观测值

删除在R中的write.table()函数期间创建的附加行

快速合并R内的值

用满足特定列匹配的另一行替换NA行

名字的模糊匹配

ggplot斜体轴刻度标签中的单个字符-以前的帖子建议不工作

roxygen2正在处理太多的文件

对数据帧中的列进行子集设置以通过迭代创建新的数据帧

列间序列生成器的功能

按顺序将地块添加到列表