为什么我不能替换合并数据框中的值?

生化狂

我有两个dataframes如下:

df1 <- read.table(text = "Source    Signal  Target
A   no  B
B   yes C
C   no  D
D   no  A
E   yes F
F   yes G
G   no  E", header = T)

df2 <- read.table(text = "Source    Signal  Target
A   no  B
B   yes C
E   yes F
F   yes G", header = T)

我合并了df1and df2:interactions <- merge(df1, df2)然后我试图match每个Sourceand Targetwith df3

df3 <- read.table(text = "Symbol    ID  Name
A   11  LetterA
C   13  LetterC
D   14  LetterD
F   16  LetterF
G   17  LetterG", header = T)

我得到以下输出:

Source
     Symbol   ID    Name
1         A   11    LetterA
NA     <NA>   NA    <NA>
NA.1   <NA>   NA    <NA>
4         F   16    LetterF

所以我想replaceNA在显示的“原始”输入df2和如下得到的输出:

Symbol  ID   Name
  A     11   LetterA
  B     NA   B
  E     NA   E
  F     16   LetterF

我试过:

Source <- df3[match(interactions$Source, df3$Symbol),-4]
my.na <- is.na(Source$Name)
Source$Name[my.na] <- interactions$Source[my.na]
Source$Symbol[my.na] <- interactions$Source[my.na]

但我得到的是数字而不是字符。有什么我想念的吗?是否可以在不使用任何库的情况下替换合并值?

迪维比桑

您的问题是,默认情况下,read.table将字符串转换为存储为整数的因子,这些整数映射到查找表。因此,当您尝试将它们插入 时Source,它实际插入的是该因子的整数值。您可以通过将参数添加stringsAsFactors = F到您的read.table调用中解决此问题,以便将那里的数据保留为字符串。现在,当您使用 match 将值插入Source其中时,将插入字符串,而不是因子数。

如果您仍然遇到问题,您可能还需要将变量转换Source为字符而不是因子。你可以这样做:

# Base R:
Source$Symbol <- as.character(Source$Symbol)
Source$Name <- as.character(Source$Name)

# Dplyr:
library(dplyr)
Source <- Source %>%
    mutate_if(is.factor, as.character)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Python

我为什么要在熊猫中复制数据框

来自分类Dev

替换数据框中的值

来自分类Dev

为什么我无法在数据框中添加列名?

来自分类Dev

如何替换数据框中的数据值

来自分类Dev

为什么我不能替换猫鼬文档中的字段?

来自分类Dev

为什么我不能在SQLite中更改值?

来自分类Dev

为什么我的多索引数据框的索引值重复?

来自分类Dev

为什么我不能从提取中存储数据

来自分类Dev

为什么即使我之前已经附加了数据框,也无法在“ for循环”中更改数据框的值?

来自分类Dev

[]替换数据框中的值是什么意思?

来自分类Dev

为什么在按列的值对数据框进行排序后,R中的plot()不能反映数据?

来自分类Dev

为什么我的函数返回一个数据框,但不能将其归因于r中的变量?

来自分类Dev

为什么我不能在React中更改输入值?

来自分类Dev

使用qcut后,为什么我的数据值被“ NaN”替换?

来自分类Dev

为什么我不能解析此数据值?

来自分类Dev

为什么我不能更改Json的值

来自分类Dev

为什么我不能在WPF的文本框中反映列表框的选择?

来自分类Dev

如果文本框有值,为什么我不能显示警报?

来自分类Dev

为什么我不能选择列表框值?

来自分类Dev

为什么我不能遍历数据框中的新列?

来自分类Dev

合并数据框并用 R 中的值替换 NONE

来自分类Dev

为什么我不能访问全局变量中的值

来自分类Dev

为什么我不能解析代码中的值“字段”?

来自分类Dev

为什么我的代码中的类型列表中的 (num) 取一个值,如果我添加新值则替换旧值?因为这个我不能平均

来自分类Dev

为什么我不能在我的 Pandas 数据框中替换换行符?

来自分类Dev

为什么不能使用 .loc 更改 Pandas 数据框中特定列的值?

来自分类Dev

为什么我不能更改 QMap 中的 Qvariant 值?

来自分类Dev

为什么我会收到用于替换 python 数据框中的单元格内容的属性错误?

来自分类Dev

Inf 和 NaN 值不能被数据框中的 NA 替换

Related 相关文章

  1. 1

    我为什么要在熊猫中复制数据框

  2. 2

    替换数据框中的值

  3. 3

    为什么我无法在数据框中添加列名?

  4. 4

    如何替换数据框中的数据值

  5. 5

    为什么我不能替换猫鼬文档中的字段?

  6. 6

    为什么我不能在SQLite中更改值?

  7. 7

    为什么我的多索引数据框的索引值重复?

  8. 8

    为什么我不能从提取中存储数据

  9. 9

    为什么即使我之前已经附加了数据框,也无法在“ for循环”中更改数据框的值?

  10. 10

    []替换数据框中的值是什么意思?

  11. 11

    为什么在按列的值对数据框进行排序后,R中的plot()不能反映数据?

  12. 12

    为什么我的函数返回一个数据框,但不能将其归因于r中的变量?

  13. 13

    为什么我不能在React中更改输入值?

  14. 14

    使用qcut后,为什么我的数据值被“ NaN”替换?

  15. 15

    为什么我不能解析此数据值?

  16. 16

    为什么我不能更改Json的值

  17. 17

    为什么我不能在WPF的文本框中反映列表框的选择?

  18. 18

    如果文本框有值,为什么我不能显示警报?

  19. 19

    为什么我不能选择列表框值?

  20. 20

    为什么我不能遍历数据框中的新列?

  21. 21

    合并数据框并用 R 中的值替换 NONE

  22. 22

    为什么我不能访问全局变量中的值

  23. 23

    为什么我不能解析代码中的值“字段”?

  24. 24

    为什么我的代码中的类型列表中的 (num) 取一个值,如果我添加新值则替换旧值?因为这个我不能平均

  25. 25

    为什么我不能在我的 Pandas 数据框中替换换行符?

  26. 26

    为什么不能使用 .loc 更改 Pandas 数据框中特定列的值?

  27. 27

    为什么我不能更改 QMap 中的 Qvariant 值?

  28. 28

    为什么我会收到用于替换 python 数据框中的单元格内容的属性错误?

  29. 29

    Inf 和 NaN 值不能被数据框中的 NA 替换

热门标签

归档