df = data.frame(table(train$department , train$outcome))
部门和结果都是因素,因此它给了我一个像给定图像中一样的数据框
is_outcome是二进制文件,df看起来像这样
仅包含2个变量(字段),而我希望此Department列成为数据框的一部分,即3个变量的数据框
0 1
Analytics 4840 512
Finance 2330 206
HR 2282 136
Legal 986 53
Operations 10325 1023
Procurement 6450 688
R&D 930 69
Sales & Marketing 15627 1213
Technology 6370 768
我学到的一种方法是...
df = data.frame(table(train$department , train$is_outcome))
write.csv(df,"df.csv")
rm(df)
df = read.csv("df.csv")
colnames(df) = c("department", "outcome_0","outcome_1")
但是我无法每次都在程序中保存文件
有什么办法可以直接做到这一点。
答案 0 :(得分:0)
当您尝试从R中的矩阵创建表时,最终得到了trial.table。对象trial.table看起来与矩阵试验完全相同,但实际上并非如此。当您将这些对象转换为数据框时,区别变得很明显。看一下这段代码的结果:
<img src="..." draggable='false' ondragstart='return false'>
在这里,您将获得一个包含两个变量(病态和健康状态)的数据框,每个观察值有两个。另一方面,如果将表转换为数据框,则会得到以下结果:
> trial.df <- as.data.frame(trial)
> str(trial.df)
‘data.frame’: 2 obs. of 2 variables:
$ sick : num 34 11
$ healthy: num 9 32
as.data.frame()函数将表格转换为数据框,格式为对计数数据进行回归分析所需的格式。如果需要首先汇总计数,则可以使用table()创建所需的表。
现在您将获得一个包含三个变量的数据框。前两个变量Var1和Var2是因子变量,其水平分别是表的行和列的值。第三个变量Freq包含前两个变量中每个级别组合的频率。
实际上,您还可以通过添加更多变量作为参数,或者使用as.table()将多维数组转换为表,从而在二维上创建表。您可以像处理多维数组一样访问数字,并且as.data.frame()函数创建的要素变量与维度一样多。