看着各位大神在数据框变换的道路上越走越远,越走越顺,在佩服各位对函数的运用之熟练之余,不禁有些话想说。
大家先看我如何实现的:
挺简单,是吧?因为我从头就没有考虑数据框变换的问题。
就像我在第5楼所提醒楼主的,严格来说,目标“表格”不是统计意义上的二维数据框,而是一个一维向量的“分割展示”。所以,楼主所提出的问题不是数据框变换的问题,而是一个“向量分割”的问题,中间自然而然出现了“降维”。为什么会这样?因为原数据框只有两个变量,抽取其中一个变量作为“归类”条件后,剩下一个变量是无法支撑起一个数据框。从另外一个角度说, 目标“表格”的列代表不同“trt”属性,而目标表格的行不具备任何意义。
故而,用向量划分的普通函数——split()很容易就解决了这个问题。而不需要像数据框变形的解决思路那样,一定需要引入一个“无统计意义”的新变量,无论是“obs”还是“id”。
但是,我要再次劝楼主不要用这样的二维表,尤其是在传授知识时,因为不严谨,这样的二维表容易“暗示”不存在的逻辑联系,且无法解决各分类别向量长度不相等时的问题。那应该如何呢?我建议用list的形式,比如,split()函数的直接处理结果如下:
这就是用list的形式组装了对原向量切割后的结果,这样的逻辑非常清晰和严谨,各个子向量相互独立,不会引起误会。而且当各子向量长度不一致时,也不会存在任何问题,比如:
最后,再吐槽一下,本论坛输入“美元符号”真的有可能会带来排版上的灾难性结果。