我如何使用dplyr根据原始列中的字符将一列转换为3?

问题描述 投票:0回答:1

希望这是有道理的。我的数据集中有一列,其中有多个条目属于以下三种大小类别之一(以字符形式读取数据),“((0,1.88]”,“(1.88,4]”和“(4,10]”)我将通过绘图(数据集中的另一列)将所有条目组合在一起,将每个尺寸类别的响应总计在其自己的列中。

理想情况下,我正在尝试获取在每个图中具有多个响应的数据,并最终为每个图获得一个总响应,并按大小类别进行划分。我希望得到这样的东西:

Plot     Total Response for (0,1.88]     Total Response for (1.88,4]     Total Response for (4,10]

这里是我的数据的头。并不需要全部,仅需要Plot,盎司和tuber.diam。 tuber.diam的条目分为大小类别。

head(newChippers)
  Plot ounces Height Shape Area plot variety rate block width length tuber.oz.bin tuber.diam
1 2422   1.31   1.22 26122 3237  242  Lamoka    3     4  1.65   1.70        (0,4]   (0,1.88]
2 2422   2.76   1.56 27853 5740  242  Lamoka    3     4  2.20   2.24        (0,4]   (1.88,4]
3 2422   1.62   1.31 24125 3721  242  Lamoka    3     4  1.53   1.95        (0,4]   (0,1.88]
4 2422   3.37   1.70 27147 6498  242  Lamoka    3     4  2.17   2.48        (0,4]   (1.88,4]
5 2422   3.19   1.70 27683 6126  242  Lamoka    3     4  2.22   2.34        (0,4]   (1.88,4]
6 2422   2.83   1.53 27356 6009  242  Lamoka    3     4  2.00   2.53        (0,4]   (1.88,4]

这是我目前用于制作新数据集的内容:

YieldSizeProfileDiameter <- newChippers %>%
  group_by(Plot) %>% 
  summarize(totalOz = sum(Weight),
            Diameter.0.1.88  = (tuber.diam("(0,1.88]")),
            Diameter.1.88.4  = (tuber.diam("    (1.88,4]")),
            Diameter.4.10  = (tuber.diam("  (4,10]"))) 

我得到以下错误代码:

x [[n]中的错误:类型为'closure'的对象是不可子集的]

任何帮助将不胜感激!同样,如果我对它的解释不充分或过于复杂,我感到非常抱歉。如果需要任何其他信息,我可以尝试提供。谢谢!

希望这是有道理的。我的数据集中有一列,其中有多个条目属于以下三种大小类别之一(以字符形式读取数据),“((0,1.88]”,“(1.88,4]”和“(4,10]”) 。我想...

r dplyr
1个回答
0
投票

我已经修改了您的代码。我假设您的变量weight与变量ounce相同,因为weight您的数据数据中没有newChippers变量。我在您的代码中使用weight

© www.soinside.com 2019 - 2024. All rights reserved.