根据条件复杂的另一行调整数据框行
adjust data-frame row based on another row with a complicated condition
我有以下示例数据框:
structure(list(V327 = c("A", "A"), V328 = c("P", "P"), V329 = c("I",
"I"), V330 = c("T", "T"), V331 = c("A", "A"), V332 = c("Y", "Y"
), V333 = c("A", "A"), V334 = c("Q", "Q"), V340 = c("Q", "Q"),
V341 = c("T", "T"), V342 = c("R", "R"), V343 = c("G", "G"
), V355 = c("X", "L"), V356 = c("X", "L"), V363 = c("X",
"G"), V364 = c("X", "C"), V365 = c("X", "I"), V367 = c("X",
"I"), V368 = c("X", "T"), V369 = c("X", "S"), V370 = c("X",
"L"), V384 = c("X", "T"), V418 = c("X", "G"), V421 = c("X",
"R"), V422 = c("X", "D"), V431 = c("X", "K"), V485 = c("X",
"N"), V486 = c("X", "Q"), V487 = c("X", "V"), V488 = c("X",
"E"), V489 = c("X", "G"), V490 = c("X", "E"), V491 = c("X",
"V"), V531 = c("X", "Q"), V532 = c("X", "I"), V533 = c("X",
"V"), V534 = c("X", "S"), V535 = c("X", "T"), V536 = c("X",
"A"), V544 = c("X", "T"), V545 = c("X", "Q"), V546 = c("T",
"T"), V547 = c("F", "F"), V548 = c("L", "L"), V567 = c("A",
"A"), V569 = c("T", "T"), V570 = c("C", "C"), V571 = c("I",
"I"), V572 = c("N", "N"), V573 = c("G", "G"), V576 = c("V",
"V"), V577 = c("C", "C"), V617 = c("W", "W"), V618 = c("T",
"T"), V619 = c("V", "V"), V620 = c("Y", "Y"), V621 = c("H",
"H"), V646 = c("G", "G"), V647 = c("A", "A"), V668 = c("G",
"G"), V669 = c("T", "T"), V711 = c("R", "R"), V712 = c("T",
"T"), V718 = c("I", "I"), V719 = c("A", "A"), V744 = c("S",
"S"), V745 = c("X", "P"), V751 = c("K", "K"), V752 = c("G",
"G"), V753 = c("P", "P"), V754 = c("V", "V"), V755 = c("I",
"I"), V760 = c("Q", "Q"), V770 = c("M", "M"), V771 = c("Y",
"Y"), V774 = c("T", "T"), V775 = c("N", "N"), V776 = c("V",
"V"), V777 = c("D", "D"), V778 = c("Q", "Q"), V793 = c("D",
"D"), V794 = c("L", "L"), V796 = c("V", "V"), V797 = c("G",
"G"), V798 = c("W", "W"), V799 = c("P", "P"), V800 = c("A",
"A"), V807 = c("P", "P"), V820 = c("Q", "Q"), V821 = c("G",
"G"), V846 = c("A", "S"), V847 = c("R", "R"), V848 = c("S",
"S"), V853 = c("L", "L"), V854 = c("T", "T"), V855 = c("P",
"P"), V905 = c("C", "C"), V930 = c("T", "T"), V931 = c("C",
"C"), V932 = c("G", "G"), V970 = c("S", "S"), V975 = c("S",
"S"), V976 = c("D", "D"), V977 = c("L", "L"), V978 = c("Y",
"Y"), V979 = c("L", "L"), V1012 = c("V", "V"), V1013 = c("T",
"T"), V1014 = c("R", "R"), V1015 = c("H", "H"), V1016 = c("A",
"A"), V1017 = c("D", "D"), V1065 = c("V", "V"), V1085 = c("I",
"I"), V1086 = c("P", "P"), V1087 = c("V", "V"), V1088 = c("R",
"R"), V1089 = c("R", "R"), V1108 = c("R", "R"), V1109 = c("G",
"G"), V1120 = c("D", "D"), V1121 = c("S", "S"), V1122 = c("R",
"R"), V1173 = c("G", "G"), V1174 = c("S", "S"), V1175 = c("L",
"L"), V1193 = c("L", "L"), V1194 = c("S", "S"), V1195 = c("P",
"P"), V1196 = c("R", "R"), V1216 = c("P", "P"), V1217 = c("I",
"I"), V1308 = c("S", "S"), V1309 = c("Y", "Y"), V1310 = c("L",
"L"), V1311 = c("K", "K"), V1314 = c("G", "G"), V1315 = c("S",
"S"), V1363 = c("S", "S"), V1364 = c("G", "G"), V1382 = c("G",
"G"), V1383 = c("P", "P"), V1384 = c("L", "L"), V1396 = c("L",
"L"), V1397 = c("C", "C"), V1401 = c("P", "P"), V1402 = c("A",
"T"), V1403 = c("G", "G"), V1404 = c("H", "H"), V1405 = c("A",
"A"), V1406 = c("V", "V"), V1407 = c("G", "G"), V1437 = c("I",
"L"), V1438 = c("F", "F"), V1439 = c("R", "R"), V1440 = c("A",
"A"), V1441 = c("A", "A"), V1442 = c("V", "V"), V1443 = c("C",
"C"), V1448 = c("T", "T"), V1457 = c("R", "R"), V1458 = c("G",
"G"), V1464 = c("V", "V"), V1465 = c("A", "A"), V1529 = c("K",
"K"), V1530 = c("A", "A"), V1531 = c("V", "V"), V1532 = c("D",
"D"), V1533 = c("F", "F"), V1534 = c("I", "I"), V1538 = c("P",
"P"), V1539 = c("V", "V"), V1540 = c("E", "E"), V1555 = c("G",
"N"), V1556 = c("L", "L"), V1568 = c("E", "E"), V1569 = c("T",
"T"), V1570 = c("T", "T"), V1571 = c("M", "M"), V1572 = c("R",
"R"), V1573 = c("S", "G"), V1574 = c("P", "S"), V1575 = c("V",
"H"), V1576 = c("F", "H"), V1577 = c("T", "H"), V1578 = c("D",
"H"), V1579 = c("N", "H"), V1580 = c("S", "H"), V1581 = c("S",
"-"), V1582 = c("P", "-"), V1583 = c("P", "-"), V1584 = c("T",
"-"), V1585 = c("V", "-"), V1586 = c("P", "-"), V1587 = c("E",
"-"), V1588 = c("S", "-"), V1589 = c("Y", "-"), V1590 = c("Q",
"-"), V1591 = c("V", "-"), V1592 = c("A", "-"), V1593 = c("H",
"-"), V1594 = c("L", "-"), V1595 = c("H", "-"), V1596 = c("A",
"-"), V1597 = c("P", "-"), V1598 = c("T", "-"), V1599 = c("G",
"-"), V1600 = c("S", "-"), V1601 = c("G", "-"), V1602 = c("K",
"-"), V1603 = c("S", "-"), V1604 = c("T", "-"), V1605 = c("K",
"-"), V1606 = c("V", "-"), V1607 = c("P", "-"), V1608 = c("A",
"-"), V1609 = c("A", "-"), V1610 = c("Y", "-"), V1611 = c("A",
"-"), V1612 = c("A", "-"), V1613 = c("Q", "-"), V1614 = c("G",
"-"), V1615 = c("Y", "-"), V1616 = c("K", "-"), V1617 = c("V",
"-"), V1618 = c("L", "-"), V1619 = c("V", "-"), V1620 = c("L",
"-"), V1621 = c("N", "-"), V1622 = c("P", "-"), V1623 = c("S",
"-"), V1624 = c("V", "-"), V1625 = c("A", "-"), V1626 = c("A",
"-"), V1627 = c("T", "-"), V1628 = c("L", "-"), V1629 = c("G",
"-"), V1630 = c("F", "-"), V1631 = c("G", "-"), V1632 = c("A",
"-"), V1633 = c("Y", "-"), V1634 = c("M", "-"), V1635 = c("S",
"-"), V1636 = c("R", "-"), V1637 = c("A", "-"), V1638 = c("X",
"-"), V1639 = c("G", "-"), V1640 = c("X", "-"), V1641 = c("D",
"-"), V1642 = c("P", "-"), V1643 = c("N", "-"), V1644 = c("I",
"-"), V1645 = c("R", "-"), V1646 = c("T", "-"), V1647 = c("G",
"-"), V1648 = c("V", "-"), V1649 = c("R", "-"), V1650 = c("T",
"-"), V1651 = c("I", "-"), V1652 = c("T", "-"), V1653 = c("T",
"-"), V1654 = c("G", "-"), V1655 = c("S", "-"), V1656 = c("P",
"-"), V1657 = c("I", "-"), V1658 = c("T", "-"), V1659 = c("Y",
"-"), V1660 = c("S", "-"), V1661 = c("T", "-"), V1662 = c("Y",
"-"), V1663 = c("G", "-"), V1664 = c("K", "-"), V1665 = c("F",
"-"), V1666 = c("L", "-"), V1667 = c("A", "-"), V1668 = c("D",
"-"), V1669 = c("G", "-"), V1670 = c("G", "-"), V1671 = c("C",
"-"), V1672 = c("S", "-"), V1673 = c("G", "-"), V1674 = c("G",
"-"), V1675 = c("A", "-"), V1676 = c("Y", "-"), V1677 = c("D",
"-"), V1678 = c("I", "-"), V1679 = c("I", "-"), V1680 = c("I",
"-"), V1681 = c("C", "-"), V1682 = c("D", "-"), V1683 = c("E",
"-"), V1684 = c("C", "-"), V1685 = c("H", "-"), V1686 = c("S",
"-"), V1687 = c("T", "-"), V1688 = c("D", "-"), V1689 = c("A",
"-"), V1690 = c("T", "-"), V1691 = c("S", "-"), V1692 = c("V",
"-"), V1693 = c("L", "-"), V1694 = c("G", "-"), V1695 = c("I",
"-"), V1696 = c("G", "-"), V1697 = c("T", "-"), V1698 = c("V",
"-"), V1699 = c("L", "-"), V1700 = c("D", "-"), V1701 = c("Q",
"-"), V1702 = c("A", "-"), V1703 = c("E", "-"), V1704 = c("T",
"-"), V1705 = c("A", "-"), V1706 = c("G", "-"), V1707 = c("V",
"-"), V1708 = c("R", "-"), V1709 = c("L", "-"), V1710 = c("T",
"-"), V1711 = c("V", "-"), V1712 = c("L", "-"), V1713 = c("A",
"-"), V1714 = c("T", "-"), V1715 = c("A", "-"), V1716 = c("T",
"-"), V1717 = c("P", "-"), V1718 = c("P", "-"), V1719 = c("G",
"-"), V1720 = c("S", "-"), V1721 = c("V", "-"), V1722 = c("T",
"-"), V1723 = c("V", "-"), V1724 = c("P", "-"), V1725 = c("H",
"-"), V1726 = c("P", "-"), V1727 = c("D", "-"), V1728 = c("I",
"-"), V1729 = c("E", "-"), V1730 = c("E", "-"), V1731 = c("V",
"-"), V1732 = c("A", "-"), V1733 = c("L", "-"), V1734 = c("S",
"-"), V1735 = c("X", "-"), V1736 = c("T", "-"), V1737 = c("G",
"-"), V1738 = c("E", "-"), V1739 = c("I", "-"), V1740 = c("P",
"-"), V1741 = c("F", "-"), V1742 = c("Y", "-"), V1743 = c("G",
"-"), V1744 = c("K", "-"), V1745 = c("A", "-"), V1746 = c("I",
"-"), V1747 = c("P", "-"), V1748 = c("L", "-"), V1749 = c("E",
"-"), V1750 = c("V", "-"), V1751 = c("I", "-"), V1752 = c("K",
"-"), V1753 = c("G", "-"), V1754 = c("G", "-"), V1755 = c("R",
"-"), V1756 = c("H", "-"), V1757 = c("L", "-"), V1758 = c("I",
"-"), V1759 = c("F", "-"), V1760 = c("C", "-"), V1761 = c("H",
"-"), V1762 = c("S", "-"), V1763 = c("K", "-"), V1764 = c("K",
"-"), V1765 = c("K", "-"), V1766 = c("C", "-"), V1767 = c("D",
"-"), V1768 = c("E", "-"), V1769 = c("L", "-"), V1770 = c("A",
"-"), V1771 = c("A", "-"), V1772 = c("K", "-"), V1773 = c("L",
"-"), V1774 = c("R", "-"), V1775 = c("A", "-"), V1776 = c("L",
"-"), V1777 = c("G", "-"), V1778 = c("V", "-"), V1779 = c("N",
"-"), V1780 = c("A", "-"), V1781 = c("V", "-"), V1782 = c("A",
"-"), V1783 = c("Y", "-"), V1784 = c("Y", "-"), V1785 = c("R",
"-"), V1786 = c("G", "-"), V1787 = c("L", "-"), V1788 = c("D",
"-"), V1789 = c("V", "-"), V1790 = c("S", "-"), V1791 = c("V",
"-"), V1792 = c("I", "-"), V1793 = c("P", "-"), V1794 = c("T",
"-"), V1795 = c("S", "-"), V1796 = c("G", "-"), V1797 = c("D",
"-"), V1798 = c("V", "-"), V1799 = c("V", "-"), V1800 = c("V",
"-"), V1801 = c("V", "-"), V1802 = c("A", "-"), V1803 = c("T",
"-"), V1804 = c("D", "-"), V1805 = c("A", "-"), V1806 = c("L",
"-"), V1807 = c("M", "-"), V1808 = c("T", "-"), V1809 = c("G",
"-"), V1810 = c("Y", "-"), V1811 = c("T", "-"), V1812 = c("G",
"-"), V1813 = c("D", "-"), V1814 = c("F", "-"), V1815 = c("D",
"-"), V1816 = c("S", "-"), V1817 = c("V", "-"), V1818 = c("I",
"-"), V1819 = c("D", "-"), V1820 = c("C", "-"), V1821 = c("N",
"-"), V1822 = c("T", "-"), V1823 = c("C", "-"), V1824 = c("V",
"-"), V1825 = c("T", "-"), V1826 = c("Q", "-"), V1827 = c("T",
"-"), V1828 = c("V", "-"), V1829 = c("D", "-"), V1830 = c("F",
"-"), V1831 = c("S", "-"), V1832 = c("L", "-"), V1833 = c("D",
"-"), V1834 = c("X", "-"), V1835 = c("T", "-"), V1836 = c("X",
"-"), V1837 = c("T", "-"), V1838 = c("I", "-"), V1839 = c("X",
"-"), V1840 = c("X", "-"), V1841 = c("X", "-"), V1842 = c("X",
"-"), V1843 = c("X", "-"), V1844 = c("P", "-"), V1845 = c("X",
"-"), V1846 = c("X", "-"), V1847 = c("A", "-"), V1848 = c("X",
"-"), V1849 = c("X", "-"), V1850 = c("X", "-"), V1851 = c("T",
"-"), V1852 = c("Q", "-"), V1853 = c("R", "-"), V1854 = c("R",
"-"), V1855 = c("G", "-"), V1856 = c("R", "-"), V1857 = c("T",
"-"), V1858 = c("G", "-"), V1859 = c("R", "-"), V1860 = c("G",
"-"), V1861 = c("K", "-"), V1862 = c("P", "-"), V1863 = c("G",
"-"), V1864 = c("I", "-"), V1865 = c("Y", "-"), V1866 = c("R",
"-"), V1867 = c("F", "-"), V1868 = c("V", "-"), V1869 = c("A",
"-"), V1870 = c("P", "-"), V1871 = c("G", "-"), V1872 = c("E",
"-"), V1873 = c("R", "-"), V1874 = c("P", "-"), V1875 = c("S",
"-"), V1876 = c("G", "-"), V1877 = c("M", "-"), V1878 = c("F",
"-"), V1879 = c("D", "-"), V1880 = c("S", "-"), V1881 = c("S",
"-"), V1882 = c("V", "-"), V1883 = c("L", "-"), V1884 = c("C",
"-"), V1885 = c("E", "-"), V1886 = c("C", "-"), V1887 = c("Y",
"-"), V1888 = c("D", "-"), V1889 = c("A", "-"), V1890 = c("G",
"-"), V1891 = c("C", "-"), V1892 = c("A", "-"), V1893 = c("W",
"-"), V1894 = c("Y", "-"), V1895 = c("E", "-"), V1896 = c("L",
"-"), V1897 = c("T", "-"), V1898 = c("P", "-"), V1899 = c("A",
"-"), V1900 = c("E", "-"), V1901 = c("T", "-"), V1902 = c("T",
"-"), V1903 = c("V", "-"), V1904 = c("R", "-"), V1905 = c("L",
"-"), V1906 = c("R", "-"), V1907 = c("A", "-"), V1908 = c("Y",
"-"), V1909 = c("M", "-"), V1910 = c("N", "-"), V1911 = c("T",
"-"), V1912 = c("P", "-"), V1913 = c("G", "-"), V1914 = c("L",
"-"), V1915 = c("P", "-"), V1916 = c("V", "-"), V1917 = c("C",
"-"), V1918 = c("Q", "-"), V1919 = c("D", "-"), V1920 = c("H",
"-"), V1921 = c("L", "-"), V1922 = c("E", "-"), V1923 = c("F",
"-"), V1924 = c("W", "-"), V1925 = c("E", "-"), V1926 = c("G",
"-"), V1927 = c("V", "-"), V1928 = c("F", "-"), V1929 = c("T",
"-"), V1930 = c("G", "-"), V1931 = c("L", "-"), V1932 = c("T",
"-"), V1933 = c("H", "-"), V1934 = c("I", "-"), V1935 = c("D",
"-"), V1936 = c("A", "-"), V1937 = c("H", "-"), V1938 = c("F",
"-"), V1939 = c("L", "-"), V1940 = c("S", "-"), V1941 = c("Q",
"-"), V1942 = c("T", "-"), V1943 = c("K", "-"), V1944 = c("Q",
"-"), V1945 = c("S", "-"), V1946 = c("G", "-"), V1947 = c("E",
"-"), V1948 = c("T", "-"), V1949 = c("F", "-"), V1950 = c("P",
"-"), V1951 = c("Y", "-"), V1952 = c("L", "-"), V1953 = c("V",
"-"), V1954 = c("A", "-"), V1955 = c("Y", "-"), V1956 = c("Q",
"-"), V1957 = c("A", "-"), V1958 = c("T", "-"), V1959 = c("V",
"-"), V1960 = c("C", "-")), class = "data.frame", row.names = c("UniRef90_A1EH68",
"1a1r_3B"))
我希望执行以下操作,如果行“UniRef90_A1EH68”的特定列中有“X”,我希望将其替换为另一行值,除非另一行出现以下内容字符“-”在那种情况下,我希望将其保留为“X”。
我做了以下(有效):
species_name = "UniRef90_A1EH68"
ref_name = "1a1r_3B"
fixFastaSeq <- function(sub_muscle_df, species_name, ref_name) {
ref_row = sub_muscle_df[species_name,]
column_to_keep = !(ref_row == "-" | ref_row == '.')
# cleaned based on the species
sub_muscle_df = sub_muscle_df[, column_to_keep]
intersection_logic = ((sub_muscle_df[species_name, ] == "X") &
!(sub_muscle_df[ref_name, ] == "-"))
sub_muscle_df[species_name,
intersection_logic] = sub_muscle_df[ref_name,
intersection_logic]
column_to_keep = !(sub_muscle_df[species_name, ] == "X")
return(sub_muscle_df[species_name, column_to_keep])
}
需要强调的简单例子:
AXCDXEFGG
ABCD—EFGH-
Transfrom AXCDXEFGG to ABCDEFGG
CDDEFGHP
ABCD—EFG
Transfrom CDDEFGHP to CDDEFGHP
CDDEXGHP
ABCD—EFG
Transfrom CDDEFGHP to CDDEXGHP
有更好的方法吗?
非常感谢您的帮助。
您可以使用 ==
、!=
和 &
来更改列。
i <- which(x[1,] == "X" & x[2,] != "-")
#i <- x[1,] == "X" & x[2,] != "-" #Alternative
x[1,i] <- x[2,i]
我有以下示例数据框:
structure(list(V327 = c("A", "A"), V328 = c("P", "P"), V329 = c("I",
"I"), V330 = c("T", "T"), V331 = c("A", "A"), V332 = c("Y", "Y"
), V333 = c("A", "A"), V334 = c("Q", "Q"), V340 = c("Q", "Q"),
V341 = c("T", "T"), V342 = c("R", "R"), V343 = c("G", "G"
), V355 = c("X", "L"), V356 = c("X", "L"), V363 = c("X",
"G"), V364 = c("X", "C"), V365 = c("X", "I"), V367 = c("X",
"I"), V368 = c("X", "T"), V369 = c("X", "S"), V370 = c("X",
"L"), V384 = c("X", "T"), V418 = c("X", "G"), V421 = c("X",
"R"), V422 = c("X", "D"), V431 = c("X", "K"), V485 = c("X",
"N"), V486 = c("X", "Q"), V487 = c("X", "V"), V488 = c("X",
"E"), V489 = c("X", "G"), V490 = c("X", "E"), V491 = c("X",
"V"), V531 = c("X", "Q"), V532 = c("X", "I"), V533 = c("X",
"V"), V534 = c("X", "S"), V535 = c("X", "T"), V536 = c("X",
"A"), V544 = c("X", "T"), V545 = c("X", "Q"), V546 = c("T",
"T"), V547 = c("F", "F"), V548 = c("L", "L"), V567 = c("A",
"A"), V569 = c("T", "T"), V570 = c("C", "C"), V571 = c("I",
"I"), V572 = c("N", "N"), V573 = c("G", "G"), V576 = c("V",
"V"), V577 = c("C", "C"), V617 = c("W", "W"), V618 = c("T",
"T"), V619 = c("V", "V"), V620 = c("Y", "Y"), V621 = c("H",
"H"), V646 = c("G", "G"), V647 = c("A", "A"), V668 = c("G",
"G"), V669 = c("T", "T"), V711 = c("R", "R"), V712 = c("T",
"T"), V718 = c("I", "I"), V719 = c("A", "A"), V744 = c("S",
"S"), V745 = c("X", "P"), V751 = c("K", "K"), V752 = c("G",
"G"), V753 = c("P", "P"), V754 = c("V", "V"), V755 = c("I",
"I"), V760 = c("Q", "Q"), V770 = c("M", "M"), V771 = c("Y",
"Y"), V774 = c("T", "T"), V775 = c("N", "N"), V776 = c("V",
"V"), V777 = c("D", "D"), V778 = c("Q", "Q"), V793 = c("D",
"D"), V794 = c("L", "L"), V796 = c("V", "V"), V797 = c("G",
"G"), V798 = c("W", "W"), V799 = c("P", "P"), V800 = c("A",
"A"), V807 = c("P", "P"), V820 = c("Q", "Q"), V821 = c("G",
"G"), V846 = c("A", "S"), V847 = c("R", "R"), V848 = c("S",
"S"), V853 = c("L", "L"), V854 = c("T", "T"), V855 = c("P",
"P"), V905 = c("C", "C"), V930 = c("T", "T"), V931 = c("C",
"C"), V932 = c("G", "G"), V970 = c("S", "S"), V975 = c("S",
"S"), V976 = c("D", "D"), V977 = c("L", "L"), V978 = c("Y",
"Y"), V979 = c("L", "L"), V1012 = c("V", "V"), V1013 = c("T",
"T"), V1014 = c("R", "R"), V1015 = c("H", "H"), V1016 = c("A",
"A"), V1017 = c("D", "D"), V1065 = c("V", "V"), V1085 = c("I",
"I"), V1086 = c("P", "P"), V1087 = c("V", "V"), V1088 = c("R",
"R"), V1089 = c("R", "R"), V1108 = c("R", "R"), V1109 = c("G",
"G"), V1120 = c("D", "D"), V1121 = c("S", "S"), V1122 = c("R",
"R"), V1173 = c("G", "G"), V1174 = c("S", "S"), V1175 = c("L",
"L"), V1193 = c("L", "L"), V1194 = c("S", "S"), V1195 = c("P",
"P"), V1196 = c("R", "R"), V1216 = c("P", "P"), V1217 = c("I",
"I"), V1308 = c("S", "S"), V1309 = c("Y", "Y"), V1310 = c("L",
"L"), V1311 = c("K", "K"), V1314 = c("G", "G"), V1315 = c("S",
"S"), V1363 = c("S", "S"), V1364 = c("G", "G"), V1382 = c("G",
"G"), V1383 = c("P", "P"), V1384 = c("L", "L"), V1396 = c("L",
"L"), V1397 = c("C", "C"), V1401 = c("P", "P"), V1402 = c("A",
"T"), V1403 = c("G", "G"), V1404 = c("H", "H"), V1405 = c("A",
"A"), V1406 = c("V", "V"), V1407 = c("G", "G"), V1437 = c("I",
"L"), V1438 = c("F", "F"), V1439 = c("R", "R"), V1440 = c("A",
"A"), V1441 = c("A", "A"), V1442 = c("V", "V"), V1443 = c("C",
"C"), V1448 = c("T", "T"), V1457 = c("R", "R"), V1458 = c("G",
"G"), V1464 = c("V", "V"), V1465 = c("A", "A"), V1529 = c("K",
"K"), V1530 = c("A", "A"), V1531 = c("V", "V"), V1532 = c("D",
"D"), V1533 = c("F", "F"), V1534 = c("I", "I"), V1538 = c("P",
"P"), V1539 = c("V", "V"), V1540 = c("E", "E"), V1555 = c("G",
"N"), V1556 = c("L", "L"), V1568 = c("E", "E"), V1569 = c("T",
"T"), V1570 = c("T", "T"), V1571 = c("M", "M"), V1572 = c("R",
"R"), V1573 = c("S", "G"), V1574 = c("P", "S"), V1575 = c("V",
"H"), V1576 = c("F", "H"), V1577 = c("T", "H"), V1578 = c("D",
"H"), V1579 = c("N", "H"), V1580 = c("S", "H"), V1581 = c("S",
"-"), V1582 = c("P", "-"), V1583 = c("P", "-"), V1584 = c("T",
"-"), V1585 = c("V", "-"), V1586 = c("P", "-"), V1587 = c("E",
"-"), V1588 = c("S", "-"), V1589 = c("Y", "-"), V1590 = c("Q",
"-"), V1591 = c("V", "-"), V1592 = c("A", "-"), V1593 = c("H",
"-"), V1594 = c("L", "-"), V1595 = c("H", "-"), V1596 = c("A",
"-"), V1597 = c("P", "-"), V1598 = c("T", "-"), V1599 = c("G",
"-"), V1600 = c("S", "-"), V1601 = c("G", "-"), V1602 = c("K",
"-"), V1603 = c("S", "-"), V1604 = c("T", "-"), V1605 = c("K",
"-"), V1606 = c("V", "-"), V1607 = c("P", "-"), V1608 = c("A",
"-"), V1609 = c("A", "-"), V1610 = c("Y", "-"), V1611 = c("A",
"-"), V1612 = c("A", "-"), V1613 = c("Q", "-"), V1614 = c("G",
"-"), V1615 = c("Y", "-"), V1616 = c("K", "-"), V1617 = c("V",
"-"), V1618 = c("L", "-"), V1619 = c("V", "-"), V1620 = c("L",
"-"), V1621 = c("N", "-"), V1622 = c("P", "-"), V1623 = c("S",
"-"), V1624 = c("V", "-"), V1625 = c("A", "-"), V1626 = c("A",
"-"), V1627 = c("T", "-"), V1628 = c("L", "-"), V1629 = c("G",
"-"), V1630 = c("F", "-"), V1631 = c("G", "-"), V1632 = c("A",
"-"), V1633 = c("Y", "-"), V1634 = c("M", "-"), V1635 = c("S",
"-"), V1636 = c("R", "-"), V1637 = c("A", "-"), V1638 = c("X",
"-"), V1639 = c("G", "-"), V1640 = c("X", "-"), V1641 = c("D",
"-"), V1642 = c("P", "-"), V1643 = c("N", "-"), V1644 = c("I",
"-"), V1645 = c("R", "-"), V1646 = c("T", "-"), V1647 = c("G",
"-"), V1648 = c("V", "-"), V1649 = c("R", "-"), V1650 = c("T",
"-"), V1651 = c("I", "-"), V1652 = c("T", "-"), V1653 = c("T",
"-"), V1654 = c("G", "-"), V1655 = c("S", "-"), V1656 = c("P",
"-"), V1657 = c("I", "-"), V1658 = c("T", "-"), V1659 = c("Y",
"-"), V1660 = c("S", "-"), V1661 = c("T", "-"), V1662 = c("Y",
"-"), V1663 = c("G", "-"), V1664 = c("K", "-"), V1665 = c("F",
"-"), V1666 = c("L", "-"), V1667 = c("A", "-"), V1668 = c("D",
"-"), V1669 = c("G", "-"), V1670 = c("G", "-"), V1671 = c("C",
"-"), V1672 = c("S", "-"), V1673 = c("G", "-"), V1674 = c("G",
"-"), V1675 = c("A", "-"), V1676 = c("Y", "-"), V1677 = c("D",
"-"), V1678 = c("I", "-"), V1679 = c("I", "-"), V1680 = c("I",
"-"), V1681 = c("C", "-"), V1682 = c("D", "-"), V1683 = c("E",
"-"), V1684 = c("C", "-"), V1685 = c("H", "-"), V1686 = c("S",
"-"), V1687 = c("T", "-"), V1688 = c("D", "-"), V1689 = c("A",
"-"), V1690 = c("T", "-"), V1691 = c("S", "-"), V1692 = c("V",
"-"), V1693 = c("L", "-"), V1694 = c("G", "-"), V1695 = c("I",
"-"), V1696 = c("G", "-"), V1697 = c("T", "-"), V1698 = c("V",
"-"), V1699 = c("L", "-"), V1700 = c("D", "-"), V1701 = c("Q",
"-"), V1702 = c("A", "-"), V1703 = c("E", "-"), V1704 = c("T",
"-"), V1705 = c("A", "-"), V1706 = c("G", "-"), V1707 = c("V",
"-"), V1708 = c("R", "-"), V1709 = c("L", "-"), V1710 = c("T",
"-"), V1711 = c("V", "-"), V1712 = c("L", "-"), V1713 = c("A",
"-"), V1714 = c("T", "-"), V1715 = c("A", "-"), V1716 = c("T",
"-"), V1717 = c("P", "-"), V1718 = c("P", "-"), V1719 = c("G",
"-"), V1720 = c("S", "-"), V1721 = c("V", "-"), V1722 = c("T",
"-"), V1723 = c("V", "-"), V1724 = c("P", "-"), V1725 = c("H",
"-"), V1726 = c("P", "-"), V1727 = c("D", "-"), V1728 = c("I",
"-"), V1729 = c("E", "-"), V1730 = c("E", "-"), V1731 = c("V",
"-"), V1732 = c("A", "-"), V1733 = c("L", "-"), V1734 = c("S",
"-"), V1735 = c("X", "-"), V1736 = c("T", "-"), V1737 = c("G",
"-"), V1738 = c("E", "-"), V1739 = c("I", "-"), V1740 = c("P",
"-"), V1741 = c("F", "-"), V1742 = c("Y", "-"), V1743 = c("G",
"-"), V1744 = c("K", "-"), V1745 = c("A", "-"), V1746 = c("I",
"-"), V1747 = c("P", "-"), V1748 = c("L", "-"), V1749 = c("E",
"-"), V1750 = c("V", "-"), V1751 = c("I", "-"), V1752 = c("K",
"-"), V1753 = c("G", "-"), V1754 = c("G", "-"), V1755 = c("R",
"-"), V1756 = c("H", "-"), V1757 = c("L", "-"), V1758 = c("I",
"-"), V1759 = c("F", "-"), V1760 = c("C", "-"), V1761 = c("H",
"-"), V1762 = c("S", "-"), V1763 = c("K", "-"), V1764 = c("K",
"-"), V1765 = c("K", "-"), V1766 = c("C", "-"), V1767 = c("D",
"-"), V1768 = c("E", "-"), V1769 = c("L", "-"), V1770 = c("A",
"-"), V1771 = c("A", "-"), V1772 = c("K", "-"), V1773 = c("L",
"-"), V1774 = c("R", "-"), V1775 = c("A", "-"), V1776 = c("L",
"-"), V1777 = c("G", "-"), V1778 = c("V", "-"), V1779 = c("N",
"-"), V1780 = c("A", "-"), V1781 = c("V", "-"), V1782 = c("A",
"-"), V1783 = c("Y", "-"), V1784 = c("Y", "-"), V1785 = c("R",
"-"), V1786 = c("G", "-"), V1787 = c("L", "-"), V1788 = c("D",
"-"), V1789 = c("V", "-"), V1790 = c("S", "-"), V1791 = c("V",
"-"), V1792 = c("I", "-"), V1793 = c("P", "-"), V1794 = c("T",
"-"), V1795 = c("S", "-"), V1796 = c("G", "-"), V1797 = c("D",
"-"), V1798 = c("V", "-"), V1799 = c("V", "-"), V1800 = c("V",
"-"), V1801 = c("V", "-"), V1802 = c("A", "-"), V1803 = c("T",
"-"), V1804 = c("D", "-"), V1805 = c("A", "-"), V1806 = c("L",
"-"), V1807 = c("M", "-"), V1808 = c("T", "-"), V1809 = c("G",
"-"), V1810 = c("Y", "-"), V1811 = c("T", "-"), V1812 = c("G",
"-"), V1813 = c("D", "-"), V1814 = c("F", "-"), V1815 = c("D",
"-"), V1816 = c("S", "-"), V1817 = c("V", "-"), V1818 = c("I",
"-"), V1819 = c("D", "-"), V1820 = c("C", "-"), V1821 = c("N",
"-"), V1822 = c("T", "-"), V1823 = c("C", "-"), V1824 = c("V",
"-"), V1825 = c("T", "-"), V1826 = c("Q", "-"), V1827 = c("T",
"-"), V1828 = c("V", "-"), V1829 = c("D", "-"), V1830 = c("F",
"-"), V1831 = c("S", "-"), V1832 = c("L", "-"), V1833 = c("D",
"-"), V1834 = c("X", "-"), V1835 = c("T", "-"), V1836 = c("X",
"-"), V1837 = c("T", "-"), V1838 = c("I", "-"), V1839 = c("X",
"-"), V1840 = c("X", "-"), V1841 = c("X", "-"), V1842 = c("X",
"-"), V1843 = c("X", "-"), V1844 = c("P", "-"), V1845 = c("X",
"-"), V1846 = c("X", "-"), V1847 = c("A", "-"), V1848 = c("X",
"-"), V1849 = c("X", "-"), V1850 = c("X", "-"), V1851 = c("T",
"-"), V1852 = c("Q", "-"), V1853 = c("R", "-"), V1854 = c("R",
"-"), V1855 = c("G", "-"), V1856 = c("R", "-"), V1857 = c("T",
"-"), V1858 = c("G", "-"), V1859 = c("R", "-"), V1860 = c("G",
"-"), V1861 = c("K", "-"), V1862 = c("P", "-"), V1863 = c("G",
"-"), V1864 = c("I", "-"), V1865 = c("Y", "-"), V1866 = c("R",
"-"), V1867 = c("F", "-"), V1868 = c("V", "-"), V1869 = c("A",
"-"), V1870 = c("P", "-"), V1871 = c("G", "-"), V1872 = c("E",
"-"), V1873 = c("R", "-"), V1874 = c("P", "-"), V1875 = c("S",
"-"), V1876 = c("G", "-"), V1877 = c("M", "-"), V1878 = c("F",
"-"), V1879 = c("D", "-"), V1880 = c("S", "-"), V1881 = c("S",
"-"), V1882 = c("V", "-"), V1883 = c("L", "-"), V1884 = c("C",
"-"), V1885 = c("E", "-"), V1886 = c("C", "-"), V1887 = c("Y",
"-"), V1888 = c("D", "-"), V1889 = c("A", "-"), V1890 = c("G",
"-"), V1891 = c("C", "-"), V1892 = c("A", "-"), V1893 = c("W",
"-"), V1894 = c("Y", "-"), V1895 = c("E", "-"), V1896 = c("L",
"-"), V1897 = c("T", "-"), V1898 = c("P", "-"), V1899 = c("A",
"-"), V1900 = c("E", "-"), V1901 = c("T", "-"), V1902 = c("T",
"-"), V1903 = c("V", "-"), V1904 = c("R", "-"), V1905 = c("L",
"-"), V1906 = c("R", "-"), V1907 = c("A", "-"), V1908 = c("Y",
"-"), V1909 = c("M", "-"), V1910 = c("N", "-"), V1911 = c("T",
"-"), V1912 = c("P", "-"), V1913 = c("G", "-"), V1914 = c("L",
"-"), V1915 = c("P", "-"), V1916 = c("V", "-"), V1917 = c("C",
"-"), V1918 = c("Q", "-"), V1919 = c("D", "-"), V1920 = c("H",
"-"), V1921 = c("L", "-"), V1922 = c("E", "-"), V1923 = c("F",
"-"), V1924 = c("W", "-"), V1925 = c("E", "-"), V1926 = c("G",
"-"), V1927 = c("V", "-"), V1928 = c("F", "-"), V1929 = c("T",
"-"), V1930 = c("G", "-"), V1931 = c("L", "-"), V1932 = c("T",
"-"), V1933 = c("H", "-"), V1934 = c("I", "-"), V1935 = c("D",
"-"), V1936 = c("A", "-"), V1937 = c("H", "-"), V1938 = c("F",
"-"), V1939 = c("L", "-"), V1940 = c("S", "-"), V1941 = c("Q",
"-"), V1942 = c("T", "-"), V1943 = c("K", "-"), V1944 = c("Q",
"-"), V1945 = c("S", "-"), V1946 = c("G", "-"), V1947 = c("E",
"-"), V1948 = c("T", "-"), V1949 = c("F", "-"), V1950 = c("P",
"-"), V1951 = c("Y", "-"), V1952 = c("L", "-"), V1953 = c("V",
"-"), V1954 = c("A", "-"), V1955 = c("Y", "-"), V1956 = c("Q",
"-"), V1957 = c("A", "-"), V1958 = c("T", "-"), V1959 = c("V",
"-"), V1960 = c("C", "-")), class = "data.frame", row.names = c("UniRef90_A1EH68",
"1a1r_3B"))
我希望执行以下操作,如果行“UniRef90_A1EH68”的特定列中有“X”,我希望将其替换为另一行值,除非另一行出现以下内容字符“-”在那种情况下,我希望将其保留为“X”。
我做了以下(有效):
species_name = "UniRef90_A1EH68"
ref_name = "1a1r_3B"
fixFastaSeq <- function(sub_muscle_df, species_name, ref_name) {
ref_row = sub_muscle_df[species_name,]
column_to_keep = !(ref_row == "-" | ref_row == '.')
# cleaned based on the species
sub_muscle_df = sub_muscle_df[, column_to_keep]
intersection_logic = ((sub_muscle_df[species_name, ] == "X") &
!(sub_muscle_df[ref_name, ] == "-"))
sub_muscle_df[species_name,
intersection_logic] = sub_muscle_df[ref_name,
intersection_logic]
column_to_keep = !(sub_muscle_df[species_name, ] == "X")
return(sub_muscle_df[species_name, column_to_keep])
}
需要强调的简单例子:
AXCDXEFGG
ABCD—EFGH-
Transfrom AXCDXEFGG to ABCDEFGG
CDDEFGHP
ABCD—EFG
Transfrom CDDEFGHP to CDDEFGHP
CDDEXGHP
ABCD—EFG
Transfrom CDDEFGHP to CDDEXGHP
有更好的方法吗?
非常感谢您的帮助。
您可以使用 ==
、!=
和 &
来更改列。
i <- which(x[1,] == "X" & x[2,] != "-")
#i <- x[1,] == "X" & x[2,] != "-" #Alternative
x[1,i] <- x[2,i]