【问题标题】:Unequal factor levels: coercing to characterbinding character and factor vector不等的因子水平:强制到字符绑定字符和因子向量
【发布时间】:2019-02-28 19:26:53
【问题描述】:

我正在尝试将表列表合并到数据框中,删除一列并将其转换为按样本计数的“宽”表。 我已经加载了

library(tidyr)
library(dplyr)

另外,count.tables 是一个长度为 22 的列表

运行时

count.df.long <- bind_rows(count.tables, .id="Sample")

它给了我警告:

不相等的因素水平:强制到字符绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换为字符向量绑定字符和 因子向量,强制转换成字符向量

下一步

count.df.wide <- count.df.long %>% select(-"percent") %>%
spread(Sample, count)

我明白了:

错误:行标识符重复(2572、7337、12726、17661、 21013、27067、32036、38334、43223、49353、55049、58820、63874、68410、 73324, 76677, 81930), (24259, 46481), (1638, 6608, 11922, 16110, 20102、26133、30977、37723、42343、48437、54291、58335、62672、67791、 71971, 75944, 81169), (719, 5894, 11230, 15400, 19522, 25214, 30352, 36596、41348、46807、47557、53380、57427、62124、66883、71266、75198、 80171), (1792, 7089, 12285, 16581, 20543, 26287, 31527, 37878, 42488, 48596, 54313, 58508, 63003, 68108, 72622, 76042, 81280), (4907, 29402), (18736, 39958, 60499), (2957, 7438, 14843, 17092, 21436, 27452、32434、39173、43452、49540、56178、59821、64385、69488、82672), (1401、6379、11808、15987、20141、25896、31207、37357、42117、48419、 54132, 58199, 63159, 67944, 71942, 76002, 81011), (2600, 7622, 12579, 16842、21292、27095、32362、38749、43279、49226、55018、59297、63735、 68704, 73255, 77283, 82003), (1486, 6576, 11731, 15896, 20012, 25981, 31001、37319、41990、48375、53953、58211、

我想知道第一个错误是什么,如何修复它,以及第二个错误是否与第一个错误有关?

谢谢!

埃琳娜

【问题讨论】:

  • 选择后创建一个序列列,即count.df.long %&gt;% select(-percent) %&gt;% group_by(Sample) %&gt;% mutate(rn = row_number()) %&gt;%&gt; spread(Sample, count)
  • 请注意,可重现的示例应该是minimal:您不使用包DESeq2ggplot2,因此无需加载它们。
  • @akrun 你的意思是这样的count.df.long &lt;- bind_rows(count.tables, .id="Sample") count.df.long %&gt;% select(-percent) %&gt;% group_by(Sample) %&gt;% mutate(rn = row_number()) %&gt;%&gt; spread(Sample, count) 它显示同样的错误然后&gt;count.df.long %&gt;% select(-percent) %&gt;% group_by(Sample) %&gt;% mutate(rn = row_number()) %&gt;%&gt; spread(Sample, count) Error: unexpected '&gt;' in "count.df.long %&gt;% select(-percent) %&gt;% group_by(Sample) %&gt;% mutate(rn = row_number()) %&gt;%&gt;"
  • 对于 spread(x, y) 你应该有最多 n_distinct(x) 次 n_distinct(y) 行,因为你使用这些值来填充这些维度的表格。无论如何,如果您需要更具体的答案,我同意一个可重复的示例会有所帮助。

标签: r dataframe dplyr data.table


【解决方案1】:

原始文件以相同的文件名 sampleX 命名(来自之前的错误),因此 count.df.long 正在创建一个表,其中“control”和“sampleX”作为仅有的两个 Sample id,因此,检测到“sampleX”中有无限数量的重复变量,这意味着 Sample1、2、3... 名称已用相应的文件名重新命名,错误已得到修复。

第一个警告不断出现(仍然不明白为什么),但最终输出是期望的和预期的,所以我很高兴。

感谢您的回复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    相关资源
    最近更新 更多