"Using Variations of 'Apply' in R" 的扩展
An Extension of "Using Variations of 'Apply' in R"
我早些时候在这里问过这个问题 。现在我对该问题进行了扩展。在我的 40 个变量中,一些变量是分类变量。我需要每种独特品质的观察次数。我想使用某种形式的 apply
因为我一直在这段代码的各个部分使用 sapply
和 tapply
,但这不是必需的。这是一些数据:
Age Wt Ht Type Color Width
79 134 66 C red small
67 199 64 C green small
39 135 78 T yellow small
92 149 61 C yellow medium
33 138 75 T green medium
68 139 71 C yellow medium
95 198 62 T red large
65 132 65 T blue large
56 138 81 C green large
71 193 78 T blue large
最后两列应该是
C T
red 1 1
green 2 1
blue 0 2
yellow 2 1
small 2 1
medium 2 1
large 1 3
此外,我知道我可以使用 'table',但是我如何针对 Type 一次发送多个变量,以便让它看起来像这个?使用 table
而不是 apply
对我来说没问题。
谢谢!
我们可以在 unlist
ing 'Color' 和 'Width' 列并复制 'Type' 之后使用 table
。
Un1 <- unlist(df1[5:6])
Un2 <- df1$Type[row(df1[5:6])]
如果我们需要客户订单,请转换为 factor
并在同一订单中指定 levels
。
table(factor(Un1, levels = c("red", "green", "blue", "yellow", "small",
"medium", "large")), Un2)
# Un2
# C T
# red 1 1
# green 2 1
# blue 0 2
# yellow 2 1
# small 2 1
# medium 2 1
# large 1 3
或者如果 order
是基于每列中 unique
个元素的 order
外观
table(factor(Un1, levels = unique(Un1)), Un2)
我早些时候在这里问过这个问题 apply
因为我一直在这段代码的各个部分使用 sapply
和 tapply
,但这不是必需的。这是一些数据:
Age Wt Ht Type Color Width
79 134 66 C red small
67 199 64 C green small
39 135 78 T yellow small
92 149 61 C yellow medium
33 138 75 T green medium
68 139 71 C yellow medium
95 198 62 T red large
65 132 65 T blue large
56 138 81 C green large
71 193 78 T blue large
最后两列应该是
C T
red 1 1
green 2 1
blue 0 2
yellow 2 1
small 2 1
medium 2 1
large 1 3
此外,我知道我可以使用 'table',但是我如何针对 Type 一次发送多个变量,以便让它看起来像这个?使用 table
而不是 apply
对我来说没问题。
谢谢!
我们可以在 unlist
ing 'Color' 和 'Width' 列并复制 'Type' 之后使用 table
。
Un1 <- unlist(df1[5:6])
Un2 <- df1$Type[row(df1[5:6])]
如果我们需要客户订单,请转换为 factor
并在同一订单中指定 levels
。
table(factor(Un1, levels = c("red", "green", "blue", "yellow", "small",
"medium", "large")), Un2)
# Un2
# C T
# red 1 1
# green 2 1
# blue 0 2
# yellow 2 1
# small 2 1
# medium 2 1
# large 1 3
或者如果 order
是基于每列中 unique
个元素的 order
外观
table(factor(Un1, levels = unique(Un1)), Un2)