【发布时间】:2017-11-03 12:29:03
【问题描述】:
我正在尝试创建一个使用数据框列制作表格的函数:
Freq_table=function(x){
x<-factor(x)
T<-table(STI_IPD$Q19_1,x,exclude = NULL)
T<- data.frame(T)
library(reshape2)
T_x<-dcast(T, Var1~Var2)
T_x<-T_x%>%select(-starts_with("NA"),-ends_with("NA"))
}
这里 STI_IPD 是我的数据框,x 应该是我用来创建具有另一列 Q19_1 的表的任何列
这是抛出错误:
FUN(X[[i]], ...) 中的错误:找不到对象 'Var2'
Data.frame(T) output is:
Var1 Var2 Freq
1 Consumer Goods 1 1
2 Life Sciences 1 0
3 Chemicals 1 0
4 Other Manufacturing 1 0
5 High Tech 1 0
6 Energy 1 0
7 Mining & Metals 1 0
8 Retail & Wholesale 1 0
9 Banking/Financial Services 1 0
10 Insurance/Reinsurance 1 0
11 Services (Non-Financial) 1 0
12 Logistics 1 0
13 Other Non-Manufacturing 1 0
14 Consumer Goods <NA> 1
15 Life Sciences <NA> 1
16 Chemicals <NA> 1
17 Other Manufacturing <NA> 4
18 High Tech <NA> 1
19 Energy <NA> 5
20 Mining & Metals <NA> 0
21 Retail & Wholesale <NA> 1
22 Banking/Financial Services <NA> 5
23 Insurance/Reinsurance <NA> 3
24 Services (Non-Financial) <NA> 5
25 Logistics <NA> 2
26 Other Non-Manufacturing <NA> 3
dput(head(STI_IPD, 30)) 的输出如下:
structure(list(Q18_1 = c(NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_), Q19_1 = structure(c(9L, 13L, 1L, 9L,
2L, 6L, 4L, 13L, 9L, 11L, 12L, 4L, 10L, 10L, 11L, 1L, 13L, 11L,
3L, 6L, 5L, 6L, 6L, 8L, 11L, 12L, 4L, 11L, 4L, 10L), .Label = c("Consumer Goods",
"Life Sciences", "Chemicals", "Other Manufacturing", "High Tech",
"Energy", "Mining & Metals", "Retail & Wholesale", "Banking/Financial Services",
"Insurance/Reinsurance", "Services (Non-Financial)", "Logistics",
"Other Non-Manufacturing"), class = "factor"), Q46_21_4 = c(NA,
NA, NA, NA, NA, 1L, NA, NA, NA, NA, NA, NA, 1L, NA, 1L, 1L, NA,
NA, NA, NA, NA, NA, 1L, 1L, NA, NA, NA, NA, NA, NA), Q46_21_5 = c(NA,
NA, 1L, NA, NA, 1L, NA, NA, NA, NA, NA, NA, 1L, NA, 1L, 1L, 1L,
NA, NA, NA, NA, NA, 1L, 1L, NA, 1L, NA, NA, NA, 1L), Q46_21_6 = c(NA,
NA, 1L, NA, NA, 1L, NA, NA, NA, NA, NA, NA, 1L, NA, 1L, 1L, NA,
NA, NA, NA, NA, NA, NA, 1L, NA, 1L, NA, NA, NA, 1L), Q46_21_7 = c(NA,
NA, NA, NA, NA, 1L, NA, NA, NA, NA, NA, NA, 1L, NA, 1L, NA, 1L,
NA, NA, NA, NA, NA, NA, 1L, NA, NA, NA, NA, NA, 1L), Q46_22_4 = c(NA,
NA, 1L, NA, 1L, NA, 1L, NA, NA, NA, NA, 1L, 1L, NA, 1L, 1L, NA,
NA, NA, NA, 1L, NA, NA, 1L, NA, NA, 1L, NA, NA, NA), Q46_22_5 = c(1L,
1L, 1L, NA, 1L, NA, 1L, NA, NA, 1L, NA, 1L, 1L, 1L, 1L, 1L, NA,
NA, NA, NA, 1L, NA, NA, 1L, NA, 1L, NA, NA, NA, 1L), Q46_22_6 = c(NA,
NA, 1L, NA, 1L, NA, NA, NA, NA, 1L, NA, 1L, 1L, 1L, 1L, 1L, NA,
NA, NA, NA, 1L, NA, NA, 1L, NA, 1L, NA, NA, NA, 1L), Q46_22_7 = c(NA,
NA, NA, NA, 1L, NA, NA, NA, NA, NA, NA, 1L, 1L, 1L, 1L, NA, NA,
NA, NA, NA, 1L, NA, NA, 1L, NA, NA, NA, NA, NA, 1L), Q46_23_4 = c(NA,
NA, 1L, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, NA, 1L, 1L, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA), Q46_23_5 = c(NA,
NA, 1L, NA, NA, NA, NA, NA, NA, NA, NA, 1L, 1L, NA, 1L, 1L, NA,
NA, NA, NA, 1L, NA, NA, 1L, NA, 1L, NA, NA, 1L, 1L), Q46_23_6 = c(NA,
NA, 1L, NA, NA, NA, NA, NA, NA, NA, NA, 1L, 1L, NA, 1L, 1L, NA,
NA, NA, NA, 1L, NA, NA, 1L, NA, 1L, NA, NA, 1L, 1L), Q46_23_7 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, 1L, NA, NA, NA, NA,
NA, NA, NA, 1L, NA, NA, 1L, NA, NA, NA, NA, 1L, 1L), Q46_24_4 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, 1L, NA,
1L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Q46_24_5 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, 1L, NA,
1L, NA, NA, 1L, NA, NA, 1L, NA, 1L, NA, NA, NA, 1L), Q46_24_6 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, 1L, NA,
1L, NA, NA, 1L, NA, NA, 1L, NA, 1L, NA, NA, NA, 1L), Q46_24_7 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, NA,
1L, NA, NA, 1L, NA, NA, 1L, NA, NA, NA, NA, NA, 1L), Q46_25_4 = c(1L,
1L, 1L, NA, NA, NA, NA, 1L, NA, 1L, NA, NA, 1L, 1L, 1L, 1L, NA,
NA, NA, NA, NA, NA, NA, 1L, 1L, 1L, NA, NA, NA, NA), Q46_25_5 = c(1L,
1L, 1L, NA, NA, NA, NA, 1L, NA, 1L, NA, NA, 1L, 1L, 1L, 1L, NA,
1L, NA, NA, NA, NA, NA, 1L, 1L, 1L, NA, NA, NA, 1L), Q46_25_6 = c(1L,
NA, 1L, NA, NA, NA, NA, 1L, NA, 1L, NA, NA, 1L, 1L, 1L, 1L, NA,
1L, NA, NA, NA, NA, NA, 1L, 1L, 1L, NA, NA, NA, 1L), Q46_25_7 = c(1L,
NA, NA, NA, NA, NA, NA, 1L, NA, NA, NA, NA, 1L, 1L, 1L, NA, NA,
NA, NA, NA, NA, NA, NA, 1L, 1L, NA, NA, NA, NA, 1L), Q46_26_4 = c(1L,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, 1L, NA, 1L, 1L,
1L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Q46_26_5 = c(1L,
NA, 1L, NA, NA, NA, NA, NA, NA, NA, NA, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, NA, NA, NA, NA, 1L, NA, 1L, NA, NA, NA, 1L), Q46_26_6 = c(1L,
NA, 1L, NA, NA, NA, NA, NA, NA, NA, NA, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, NA, NA, NA, NA, 1L, NA, 1L, NA, NA, NA, 1L), Q46_26_7 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, 1L, 1L, 1L, NA, 1L,
1L, NA, NA, NA, NA, NA, 1L, NA, NA, NA, NA, NA, 1L), Q46_27_4 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, NA, 1L, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L), Q46_27_5 = c(NA,
1L, 1L, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, 1L, 1L, NA,
NA, 1L, NA, NA, NA, NA, 1L, NA, 1L, NA, NA, NA, 1L), Q46_27_6 = c(NA,
NA, 1L, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, 1L, 1L, 1L, NA,
NA, 1L, NA, NA, NA, NA, 1L, NA, 1L, NA, NA, NA, 1L), Q46_27_7 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, 1L, 1L, NA, NA,
NA, 1L, NA, NA, NA, NA, 1L, NA, NA, NA, NA, NA, 1L), Q46_28_4 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA,
NA, NA, NA, NA, NA, NA, 1L, NA, NA, NA, 1L, NA, NA), Q46_28_5 = c(NA,
1L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, 1L, NA,
NA, 1L, NA, NA, NA, NA, 1L, NA, 1L, NA, 1L, NA, 1L), Q46_28_6 = c(NA,
NA, 1L, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, 1L, 1L, NA,
NA, 1L, NA, NA, NA, NA, 1L, NA, 1L, NA, 1L, NA, 1L), Q46_28_7 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, 1L, NA, NA,
NA, 1L, NA, NA, NA, NA, 1L, NA, NA, NA, 1L, NA, 1L), Q46_29_4 = c(NA,
NA, NA, 1L, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, 1L, 1L, NA,
NA, 1L, 1L, NA, 1L, NA, NA, NA, NA, NA, NA, NA, NA), Q46_29_5 = c(NA,
1L, 1L, 1L, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, 1L, 1L, NA,
NA, 1L, 1L, NA, 1L, NA, 1L, NA, 1L, NA, NA, NA, 1L), Q46_29_6 = c(NA,
NA, 1L, 1L, NA, NA, NA, NA, NA, NA, NA, NA, 1L, 1L, 1L, 1L, NA,
NA, 1L, 1L, NA, 1L, NA, 1L, NA, 1L, NA, NA, NA, 1L), Q46_29_7 = c(NA,
NA, NA, 1L, NA, NA, NA, NA, NA, NA, NA, NA, 1L, 1L, 1L, NA, NA,
NA, 1L, 1L, NA, 1L, NA, 1L, NA, NA, NA, NA, NA, 1L), Q46_30_4 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA,
NA, NA, NA, NA, 1L, NA, NA, NA, NA, NA, NA, NA, NA), Q46_30_5 = c(NA,
NA, 1L, NA, NA, NA, NA, NA, NA, 1L, NA, NA, 1L, NA, 1L, 1L, NA,
1L, 1L, NA, NA, 1L, NA, 1L, NA, 1L, NA, NA, NA, 1L), Q46_30_6 = c(NA,
NA, 1L, NA, NA, NA, NA, NA, NA, 1L, NA, NA, 1L, NA, 1L, 1L, NA,
1L, 1L, NA, NA, 1L, NA, 1L, NA, 1L, NA, NA, NA, 1L), Q46_30_7 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, 1L, NA, NA,
NA, 1L, NA, NA, 1L, NA, 1L, NA, NA, NA, NA, NA, 1L), Q46_31_4 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA,
NA, NA, NA, NA, 1L, NA, NA, NA, NA, NA, NA, NA, NA), Q46_31_5 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, NA, NA, NA, 1L, 1L, NA,
NA, 1L, NA, NA, 1L, NA, 1L, NA, 1L, NA, NA, NA, 1L), Q46_31_6 = c(NA,
NA, 1L, NA, NA, NA, NA, NA, NA, 1L, NA, NA, NA, NA, 1L, 1L, NA,
NA, 1L, 1L, NA, 1L, NA, 1L, NA, 1L, NA, NA, NA, 1L), Q46_31_7 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, NA,
NA, 1L, 1L, NA, 1L, NA, 1L, NA, NA, NA, NA, NA, 1L), Q46_32_4 = c(NA,
1L, NA, NA, NA, NA, NA, NA, 1L, NA, 1L, NA, 1L, NA, NA, 1L, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Q46_32_5 = c(NA,
1L, 1L, NA, NA, NA, NA, NA, 1L, 1L, 1L, NA, 1L, 1L, 1L, 1L, NA,
1L, NA, NA, NA, NA, NA, 1L, NA, 1L, NA, NA, NA, 1L), Q46_32_6 = c(NA,
NA, 1L, NA, NA, NA, NA, NA, 1L, 1L, 1L, NA, 1L, 1L, 1L, 1L, NA,
1L, NA, NA, NA, NA, NA, 1L, NA, 1L, NA, NA, NA, 1L), Q46_32_7 = c(NA,
NA, NA, NA, NA, NA, NA, NA, 1L, NA, 1L, NA, 1L, 1L, 1L, NA, NA,
NA, NA, NA, NA, NA, NA, 1L, NA, NA, NA, NA, NA, 1L), Q46_33_4 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Q46_33_5 = c(NA,
1L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, 1L, 1L, NA,
1L, NA, NA, NA, NA, NA, 1L, NA, 1L, NA, NA, NA, NA), Q46_33_6 = c(NA,
NA, 1L, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, 1L, 1L, NA,
1L, NA, NA, NA, NA, NA, 1L, NA, 1L, NA, NA, NA, NA), Q46_33_7 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, 1L, NA, NA,
NA, NA, NA, NA, NA, NA, 1L, NA, NA, NA, NA, NA, NA), Q46_34_4 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Q46_34_5 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, NA, NA, NA), Q46_34_6 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, NA, NA, NA), Q46_34_7 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)), .Names = c("Q18_1",
"Q19_1", "Q46_21_4", "Q46_21_5", "Q46_21_6", "Q46_21_7", "Q46_22_4",
"Q46_22_5", "Q46_22_6", "Q46_22_7", "Q46_23_4", "Q46_23_5", "Q46_23_6",
"Q46_23_7", "Q46_24_4", "Q46_24_5", "Q46_24_6", "Q46_24_7", "Q46_25_4",
"Q46_25_5", "Q46_25_6", "Q46_25_7", "Q46_26_4", "Q46_26_5", "Q46_26_6",
"Q46_26_7", "Q46_27_4", "Q46_27_5", "Q46_27_6", "Q46_27_7", "Q46_28_4",
"Q46_28_5", "Q46_28_6", "Q46_28_7", "Q46_29_4", "Q46_29_5", "Q46_29_6",
"Q46_29_7", "Q46_30_4", "Q46_30_5", "Q46_30_6", "Q46_30_7", "Q46_31_4",
"Q46_31_5", "Q46_31_6", "Q46_31_7", "Q46_32_4", "Q46_32_5", "Q46_32_6",
"Q46_32_7", "Q46_33_4", "Q46_33_5", "Q46_33_6", "Q46_33_7", "Q46_34_4",
"Q46_34_5", "Q46_34_6", "Q46_34_7"), class = c("data.table",
"data.frame"), row.names = c(NA, -30L), .internal.selfref = <pointer: 0x0000000000090788>)
【问题讨论】:
-
我有 13 列要重复相同的活动:
-
您可以在您的问题中发布
dput(head(STI_IPD, 30))的输出吗?同时,data.frame(T)的列的名称是什么? -
嗨,我已经添加了数据框 gimpse 和 Data.frame(T) 输出。谢谢
-
看,我已经询问了
dput(...)的输出,因为有了它我们可以简单地复制并粘贴到 R 会话中,它会完全地重新创建你的数据。感谢您的编辑,但最好发布我所要求的内容。另外,你如何调用你的函数?你传递什么作为它的论点x? -
您好,我添加了 dput(head(STI_IPD, 30)) ,这个函数有错误。我希望列名作为 x 传递。我这样做是为了生成带有另一个修复列 Q19_1 的列的交叉表/频率表