[英]How do I combine vectors into a dataframe using an index vector in R?
I have a dataframe df
of answers to a survey (IPAQ) with 27 questions.我有一份包含 27 个问题的调查 (IPAQ) 答案的 dataframe df
。 These are the first 8 columns:这些是前 8 列:
df
ID `1` `2` `3` `4` `5` `6` `7`
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 28 0 0 0 0 0 0 0
2 52 0 0 0 0 0 0 0
3 97 1 0 0 1 60 0 0
4 100 0 0 0 0 0 0 0
5 112 0 0 0 0 0 0 0
6 157 0 0 0 0 0 0 0
7 252 0 0 0 0 0 0 0
8 254 1 0 0 4 120 7 180
9 309 1 0 0 2 30 0 0
10 332 0 0 0 0 0 0 0
I have created variables which convert these answers into meaningful totals eg:我创建了将这些答案转换为有意义的总数的变量,例如:
###Housework and gardening###
gard.vig = (5.5 * df$`14` * df$`15`)
gard.mod = (4.0 * df$`16` * df$`17`)
house.mod = (3.0 * df$`18` * df$`19`)
total.hg = (gard.mod + gard.vig + house.mod)
###Leisure###
lei.walk = (3.3 * df$`20` * df$`21`)
lei.mod = (4.0 * df$`24` * df$`25`)
lei.vig = (8.0 * df$`22` * df$`23`)
tot.lei = (lei.walk + lei.mod + lei.vig)
I want to combine/ bind these variables together in a dataframe/tibble using the ID
variable from the original df
to create something like this:我想使用原始df
中的ID
变量将这些变量组合/绑定到一个数据框/小标题中,以创建如下内容:
ID lei.walk lei.mod lei.vig total.lei gard.mod gard.vig etc.
28 600 55 89 etc.
52 etc.
etc.
Since the vector are already calculated we can directly cbind
them由于已经计算了向量,我们可以直接对它们进行cbind
cbind(df[1], gard.vig, gard.mod, house.mod, total.hg, lei.walk,
lei.mod, lei.vig, tot.lei)
Or using data.frame
或使用data.frame
data.frame(ID = df$ID, gard.vig, gard.mod, house.mod, total.hg,
lei.walk,lei.mod, lei.vig, tot.lei)
We can use tibble
我们可以使用tibble
library(tibble)
tibble(df[1], gard.vig, gard.mod, house.mod, total.hg, lei.walk,
lei.mod, lei.vig, tot.lei)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.