我正在尝试修改以下数据框,以包括两个新列:一列基于氧气列中的“ +”或“-”元素,一个表示正氧含量,一个表示负氧含量。下面是我的代码:
df2 <- pivot_wider(df, names_from = Oxygen, values_from = concentration)
但是,最终结果仅显示-Oxygen列的NA。出了什么问题?
使用的图书馆包括tidyverse。
下面是我的数据框:
structure(list(Sample = c(1, 2, 3, 4, 5, 6, 43, 46, 47, 83, 84,
86, 87, 125, 126, 127, 129, 165, 167, 168, 169, 170, 206, 207,
209, 210, 211, 247, 248, 249, 251, 252, 288, 289, 290, 291, 293,
329, 330, 331, 332, 333, 370, 371, 372, 373, 374, 375, 411, 412,
413, 414, 415, 416, 452, 453, 454, 455, 456, 457, 493, 494, 495,
497, 498, 534, 535, 536, 537, 538, 539, 575, 576, 577, 578, 579,
580, 616, 618, 619, 620, 621, 657, 658, 659, 660, 662, 698, 699,
700, 701, 702, 703, 739, 740, 741, 742, 743, 744, 780, 781, 782,
783, 784, 785, 821, 822, 823, 824, 825, 826, 862, 863, 864, 865,
866, 867, 905, 906, 907, 908, 944, 945, 947, 948, 985, 986, 987,
988, 990, 1026, 1027, 1028, 1029, 1030, 1031, 1067, 1068, 1069,
1070, 1071, 1072, 1108, 1109, 1110, 1111, 1112, 1113, 1149, 1150,
1151, 1152, 1153, 1154, 1190, 1192, 1193, 1194, 1195, 1231, 1232,
1233, 1234, 1236, 1272, 1273, 1274, 1275, 1276, 1277, 1313, 1314,
1315, 1316, 1317, 1318, 1354, 1355, 1357, 1358, 1359, 1395, 1396,
1397, 1398, 1399, 1400, 1436, 1437, 1438, 1439, 1440, 1441, 1477,
1478, 1479, 1480, 1481, 1482, 1518, 1519, 1520, 1521, 1522, 1523,
1559, 1560, 1561, 1562, 1563, 1564, 1600, 1601, 1602, 1603, 1604,
1605, 1641, 1642, 1643, 1644, 1645, 1646, 1682, 1683, 1684, 1685,
1686, 1687, 1723, 1724, 1725, 1726, 1727, 1728, 1764, 1767, 1768,
1769, 1806, 1807, 1846, 1848, 1849, 1850, 1887, 1888, 1890, 1891,
1892, 1928, 1929, 1930, 1932, 1933, 1969, 1970, 1971, 1972, 1974,
2010, 2011, 2012, 2013, 2014, 2051, 2052, 2053, 2054, 2055, 2056,
2092, 2093, 2094, 2095, 2096, 2097, 2133, 2134, 2135, 2136, 2137,
2138, 2174, 2175, 2176, 2177, 2178, 2179, 2215, 2217, 2218, 2219,
2220, 2256, 2257, 2258, 2259, 2260, 2297, 2298, 2299, 2300, 2301,
2302, 2338, 2340, 2341, 2342, 2343, 2379, 2380, 2381, 2382, 2384,
2420, 2421, 2422, 2423, 2424, 2425, 2461, 2462, 2463, 2464, 2465,
2466, 2502, 2503, 2504, 2505, 2506, 2507, 2543, 2544, 2545, 2546,
2547, 2548, 2584, 2585, 2586, 2587, 2588, 2589), Drug = c("Ab1",
"Ab2", "Ab3", "Ab4", "Ab5", "Ab6", "Ab2", "Ab5", "Ab6", "Ab1",
"Ab2", "Ab4", "Ab5", "Ab2", "Ab3", "Ab4", "Ab6", "Ab1", "Ab3",
"Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab4", "Ab5", "Ab6", "Ab1",
"Ab2", "Ab3", "Ab5", "Ab6", "Ab1", "Ab2", "Ab3", "Ab4", "Ab6",
"Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab1", "Ab2", "Ab3", "Ab4",
"Ab5", "Ab6", "Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab6", "Ab1",
"Ab2", "Ab3", "Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab3", "Ab5",
"Ab6", "Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab6", "Ab1", "Ab2",
"Ab3", "Ab4", "Ab5", "Ab6", "Ab1", "Ab3", "Ab4", "Ab5", "Ab6",
"Ab1", "Ab2", "Ab3", "Ab4", "Ab6", "Ab1", "Ab2", "Ab3", "Ab4",
"Ab5", "Ab6", "Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab6", "Ab1",
"Ab2", "Ab3", "Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab3", "Ab4",
"Ab5", "Ab6", "Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab6", "Ab3",
"Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab4", "Ab5", "Ab1", "Ab2",
"Ab3", "Ab4", "Ab6", "Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab6",
"Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab3",
"Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab6",
"Ab1", "Ab3", "Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab3", "Ab4",
"Ab6", "Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab6", "Ab1", "Ab2",
"Ab3", "Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab4", "Ab5", "Ab6",
"Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab3",
"Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab6",
"Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab3",
"Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab6",
"Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab3",
"Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab6",
"Ab1", "Ab4", "Ab5", "Ab6", "Ab2", "Ab3", "Ab1", "Ab3", "Ab4",
"Ab5", "Ab1", "Ab2", "Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab3",
"Ab5", "Ab6", "Ab1", "Ab2", "Ab3", "Ab4", "Ab6", "Ab1", "Ab2",
"Ab3", "Ab4", "Ab5", "Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab6",
"Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab3",
"Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab6",
"Ab1", "Ab3", "Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab3", "Ab4",
"Ab5", "Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab6", "Ab1", "Ab3",
"Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab3", "Ab4", "Ab6", "Ab1",
"Ab2", "Ab3", "Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab3", "Ab4",
"Ab5", "Ab6", "Ab1", "Ab2", "Ab3", "Ab4", "Ab5", "Ab6", "Ab1",
"Ab2", "Ab3", "Ab4", "Ab5", "Ab6", "Ab1", "Ab2", "Ab3", "Ab4",
"Ab5", "Ab6"), concentration = c(538, 40, 7300, 530, 127, 230,
50, 140, 215, 440, 50, 540, 120, 3850, 12340, 5090, 3190, 610,
6360, 520, 140, 190, 500, 30, 460, 120, 190, 350, 30, 6070, 50,
150, 370, 40, 6670, 440, 220, 3820, 3860, 11960, 5350, 2000,
2570, 1670, 11390, 3950, 1170, 810, 3240, 2610, 11840, 4400,
1580, 1900, 320, 30, 6150, 300, 110, 150, 2560, 1660, 11910,
1120, 870, 3830, 3610, 12320, 5440, 2040, 2860, 2810, 1840, 11250,
2730, 1040, 1080, 3430, 12440, 5160, 1770, 2230, 400, 90, 3480,
230, 90, 490, 120, 3230, 270, 170, 110, 550, 150, 3570, 330,
190, 120, 430, 110, 3010, 240, 150, 130, 690, 120, 4050, 270,
200, 130, 660, 80, 3530, 220, 160, 80, 3530, 260, 170, 110, 680,
70, 220, 160, 1240, 1430, 3800, 4700, 990, 560, 460, 2770, 3500,
310, 330, 1120, 1230, 3000, 5000, 720, 890, 910, 860, 2930, 4540,
480, 590, 1410, 1550, 3990, 5140, 900, 1170, 1710, 4060, 5440,
1120, 1290, 690, 780, 2830, 3390, 470, 1650, 1820, 4220, 5430,
990, 1470, 2630, 530, 4050, 580, 350, 380, 1230, 120, 280, 120,
110, 1860, 700, 3720, 700, 440, 500, 1290, 230, 4020, 300, 170,
140, 2920, 640, 4650, 690, 380, 390, 1790, 880, 4320, 830, 530,
620, 970, 200, 3740, 310, 190, 120, 2880, 700, 4080, 760, 470,
520, 1450, 90, 5310, 920, 150, 140, 1360, 60, 5190, 800, 130,
120, 1370, 100, 5100, 1040, 140, 140, 1250, 770, 130, 110, 130,
5430, 1710, 5530, 1100, 170, 1390, 110, 1070, 160, 140, 1540,
100, 5720, 170, 170, 1260, 30, 4140, 260, 40, 710, 20, 3530,
220, 80, 1000, 40, 3720, 210, 80, 50, 610, 30, 3710, 180, 60,
50, 2030, 30, 3820, 240, 70, 60, 720, 20, 3590, 180, 80, 50,
820, 3710, 160, 70, 50, 660, 20, 3450, 160, 60, 310, 80, 4910,
370, 130, 80, 230, 3830, 260, 120, 90, 230, 100, 3910, 410, 120,
190, 60, 4210, 240, 100, 80, 320, 70, 4220, 330, 120, 60, 220,
80, 3910, 320, 120, 110, 220, 50, 3830, 260, 100, 80, 20, 10,
40, 10, 10, 10), Oxygen = c("+", "+", "+", "+", "+", "+", "+",
"+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "-", "-", "-",
"-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-",
"-", "-", "-", "-", "+", "+", "+", "+", "+", "+", "+", "+", "+",
"+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+",
"+", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-",
"-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "+", "+", "+",
"+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+",
"+", "+", "+", "+", "+", "+", "+", "-", "-", "-", "-", "-", "-",
"-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-",
"-", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+",
"+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "-", "-",
"-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-",
"-", "-", "-", "-", "-", "-", "-", "+", "+", "+", "+", "+", "+",
"+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+",
"+", "+", "+", "+", "-", "-", "-", "-", "-", "-", "-", "-", "-",
"-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-",
"-", "-", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+",
"+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "-", "-",
"-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-",
"-", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+",
"+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "-", "-", "-",
"-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-",
"-", "-", "-", "-", "-", "-", "+", "+", "+", "+", "+", "+", "+",
"+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+",
"+", "+", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-",
"-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-"
), Donor = c("D1", "D1", "D1", "D1", "D1", "D1", "D1", "D1",
"D1", "D1", "D1", "D1", "D1", "D1", "D1", "D1", "D1", "D1", "D1",
"D1", "D1", "D1", "D1", "D1", "D1", "D1", "D1", "D1", "D1", "D1",
"D1", "D1", "D1", "D1", "D1", "D1", "D1", "D2", "D2", "D2", "D2",
"D2", "D2", "D2", "D2", "D2", "D2", "D2", "D2", "D2", "D2", "D2",
"D2", "D2", "D2", "D2", "D2", "D2", "D2", "D2", "D2", "D2", "D2",
"D2", "D2", "D2", "D2", "D2", "D2", "D2", "D2", "D2", "D2", "D2",
"D2", "D2", "D2", "D2", "D2", "D2", "D2", "D2", "D3", "D3", "D3",
"D3", "D3", "D3", "D3", "D3", "D3", "D3", "D3", "D3", "D3", "D3",
"D3", "D3", "D3", "D3", "D3", "D3", "D3", "D3", "D3", "D3", "D3",
"D3", "D3", "D3", "D3", "D3", "D3", "D3", "D3", "D3", "D3", "D3",
"D3", "D3", "D3", "D3", "D3", "D3", "D3", "D4", "D4", "D4", "D4",
"D4", "D4", "D4", "D4", "D4", "D4", "D4", "D4", "D4", "D4", "D4",
"D4", "D4", "D4", "D4", "D4", "D4", "D4", "D4", "D4", "D4", "D4",
"D4", "D4", "D4", "D4", "D4", "D4", "D4", "D4", "D4", "D4", "D4",
"D4", "D4", "D4", "D4", "D4", "D4", "D4", "D4", "D5", "D5", "D5",
"D5", "D5", "D5", "D5", "D5", "D5", "D5", "D5", "D5", "D5", "D5",
"D5", "D5", "D5", "D5", "D5", "D5", "D5", "D5", "D5", "D5", "D5",
"D5", "D5", "D5", "D5", "D5", "D5", "D5", "D5", "D5", "D5", "D5",
"D5", "D5", "D5", "D5", "D5", "D5", "D5", "D5", "D5", "D5", "D5",
"D6", "D6", "D6", "D6", "D6", "D6", "D6", "D6", "D6", "D6", "D6",
"D6", "D6", "D6", "D6", "D6", "D6", "D6", "D6", "D6", "D6", "D6",
"D6", "D6", "D6", "D6", "D6", "D6", "D6", "D6", "D6", "D6", "D6",
"D6", "D6", "D6", "D6", "D6", "D7", "D7", "D7", "D7", "D7", "D7",
"D7", "D7", "D7", "D7", "D7", "D7", "D7", "D7", "D7", "D7", "D7",
"D7", "D7", "D7", "D7", "D7", "D7", "D7", "D7", "D7", "D7", "D7",
"D7", "D7", "D7", "D7", "D7", "D7", "D7", "D7", "D7", "D7", "D7",
"D7", "D7", "D7", "D7", "D7", "D8", "D8", "D8", "D8", "D8", "D8",
"D8", "D8", "D8", "D8", "D8", "D8", "D8", "D8", "D8", "D8", "D8",
"D8", "D8", "D8", "D8", "D8", "D8", "D8", "D8", "D8", "D8", "D8",
"D8", "D8", "D8", "D8", "D8", "D8", "D8", "D8", "D8", "D8", "D8",
"D8", "D8", "D8", "D8", "D8", "D8", "D8"), Illness = c("pneumonia",
"pneumonia", "pneumonia", "pneumonia", "pneumonia", "pneumonia",
"gastro", "gastro", "gastro", "TB", "TB", "TB", "TB", "lyme",
"lyme", "lyme", "lyme", "pneumonia", "pneumonia", "pneumonia",
"pneumonia", "pneumonia", "gastro", "gastro", "gastro", "gastro",
"gastro", "TB", "TB", "TB", "TB", "TB", "lyme", "lyme", "lyme",
"lyme", "lyme", "pneumonia", "pneumonia", "pneumonia", "pneumonia",
"pneumonia", "gastro", "gastro", "gastro", "gastro", "gastro",
"gastro", "TB", "TB", "TB", "TB", "TB", "TB", "lyme", "lyme",
"lyme", "lyme", "lyme", "lyme", "pneumonia", "pneumonia", "pneumonia",
"pneumonia", "pneumonia", "gastro", "gastro", "gastro", "gastro",
"gastro", "gastro", "TB", "TB", "TB", "TB", "TB", "TB", "lyme",
"lyme", "lyme", "lyme", "lyme", "pneumonia", "pneumonia", "pneumonia",
"pneumonia", "pneumonia", "gastro", "gastro", "gastro", "gastro",
"gastro", "gastro", "TB", "TB", "TB", "TB", "TB", "TB", "lyme",
"lyme", "lyme", "lyme", "lyme", "lyme", "pneumonia", "pneumonia",
"pneumonia", "pneumonia", "pneumonia", "pneumonia", "gastro",
"gastro", "gastro", "gastro", "gastro", "gastro", "TB", "TB",
"TB", "TB", "lyme", "lyme", "lyme", "lyme", "pneumonia", "pneumonia",
"pneumonia", "pneumonia", "pneumonia", "gastro", "gastro", "gastro",
"gastro", "gastro", "gastro", "TB", "TB", "TB", "TB", "TB", "TB",
"lyme", "lyme", "lyme", "lyme", "lyme", "lyme", "pneumonia",
"pneumonia", "pneumonia", "pneumonia", "pneumonia", "pneumonia",
"gastro", "gastro", "gastro", "gastro", "gastro", "TB", "TB",
"TB", "TB", "TB", "lyme", "lyme", "lyme", "lyme", "lyme", "lyme",
"pneumonia", "pneumonia", "pneumonia", "pneumonia", "pneumonia",
"pneumonia", "gastro", "gastro", "gastro", "gastro", "gastro",
"TB", "TB", "TB", "TB", "TB", "TB", "lyme", "lyme", "lyme", "lyme",
"lyme", "lyme", "pneumonia", "pneumonia", "pneumonia", "pneumonia",
"pneumonia", "pneumonia", "gastro", "gastro", "gastro", "gastro",
"gastro", "gastro", "TB", "TB", "TB", "TB", "TB", "TB", "lyme",
"lyme", "lyme", "lyme", "lyme", "lyme", "pneumonia", "pneumonia",
"pneumonia", "pneumonia", "pneumonia", "pneumonia", "gastro",
"gastro", "gastro", "gastro", "gastro", "gastro", "TB", "TB",
"TB", "TB", "TB", "TB", "lyme", "lyme", "lyme", "lyme", "pneumonia",
"pneumonia", "gastro", "gastro", "gastro", "gastro", "TB", "TB",
"TB", "TB", "TB", "lyme", "lyme", "lyme", "lyme", "lyme", "pneumonia",
"pneumonia", "pneumonia", "pneumonia", "pneumonia", "gastro",
"gastro", "gastro", "gastro", "gastro", "TB", "TB", "TB", "TB",
"TB", "TB", "lyme", "lyme", "lyme", "lyme", "lyme", "lyme", "pneumonia",
"pneumonia", "pneumonia", "pneumonia", "pneumonia", "pneumonia",
"gastro", "gastro", "gastro", "gastro", "gastro", "gastro", "TB",
"TB", "TB", "TB", "TB", "lyme", "lyme", "lyme", "lyme", "lyme",
"pneumonia", "pneumonia", "pneumonia", "pneumonia", "pneumonia",
"pneumonia", "gastro", "gastro", "gastro", "gastro", "gastro",
"TB", "TB", "TB", "TB", "TB", "lyme", "lyme", "lyme", "lyme",
"lyme", "lyme", "pneumonia", "pneumonia", "pneumonia", "pneumonia",
"pneumonia", "pneumonia", "gastro", "gastro", "gastro", "gastro",
"gastro", "gastro", "TB", "TB", "TB", "TB", "TB", "TB", "lyme",
"lyme", "lyme", "lyme", "lyme", "lyme")), row.names = c(NA, -345L
), class = c("tbl_df", "tbl", "data.frame"))
答案 0 :(得分:0)
sample
列是您的问题,因为每个样本都是Drug
,Donor
,Illness
,concentration
和{{1 }}(+或-)。 Oxygen
的第一个-值发生在示例165。您的尝试将在Oxygen
列中插入NA
的几行,因此,直到您单击示例165(它将具有{{ -
列的1}}值。
NA
按照注释中建议的Bas删除+
列可以解决此问题,但是我不能从问题中看出这是否是您想要的。如果您需要转换后的数据中的样本ID,那么我们需要更多地了解所需输出的样子。
library(dplyr)
df %>% filter(Oxygen == "-")
# A tibble: 170 x 6
Sample Drug concentration Oxygen Donor Illness
<dbl> <chr> <dbl> <chr> <chr> <chr>
1 165 Ab1 610 - D1 pneumonia
2 167 Ab3 6360 - D1 pneumonia
3 168 Ab4 520 - D1 pneumonia
4 169 Ab5 140 - D1 pneumonia
5 170 Ab6 190 - D1 pneumonia
6 206 Ab1 500 - D1 gastro
7 207 Ab2 30 - D1 gastro
8 209 Ab4 460 - D1 gastro
9 210 Ab5 120 - D1 gastro
10 211 Ab6 190 - D1 gastro
# ... with 160 more rows