У меня есть список фреймов данных:Решение на основе заголовков кадра данных
df
[[1]]
ID SignalIntensity SNR
1 109 6.182309 0.8453577
2 110 10.172777 4.3837078
3 111 7.292275 1.0725751
4 112 8.898467 2.3192185
5 113 9.591034 3.7133402
7 116 7.789323 1.3636656
8 117 7.194835 1.1349738
9 118 6.572773 0.9041846
11 120 9.371126 2.9968457
12 121 6.154944 0.7777584
[[2]]
ID SignalIntensity SNR
1 118 6.572773 0.9041846
2 119 5.377519 0.7098581
3 120 9.371126 2.9968457
4 121 6.154944 0.7777584
5 123 5.797446 0.7235425
6 124 5.573614 0.7019574
7 125 7.014537 0.3433343
8 126 6.089159 0.7971650
9 127 6.314820 0.7845944
10 131 5.342544 1.2300000
Он имеет заголовки, как ID
SignalIntensity
и SNR
. Я проверяю заголовки по именам (df [[1]]). Теперь после проверки заголовков я должен принять решение, такие как, если заголовки df[[1]]
являются ID
, SingnalIntensity
и SNR
затем сделать что-то вроде
If(names(df[[1]]=="ID"))
{
print("This is data from Illumina platform")
my code..........
}
else if{my code...........}
Вот как вы знаете, он имеет три заголовки.
Я знаю, что мой способ сделать это не так, как показано ниже след
if(names(df[[1]]=="ID, SignalIntensity, SNR"))
, это дает мне
Error in if (names(df[[1]] == "ID, SignalIntensity, SNR")) { : argument is of length zero
что вполне очевидно.
Как установить if{}
так, чтобы он соответствовал всем трем заголовкам или (заголовок нашего выбора либо 1 r 2 r 3), и перейдите к другому коду, если true
, иначе сделайте что-нибудь еще. Благодаря
Что-то вроде: 'если (длина (пересечение (имена (df [[1]], c («ID», «SignalIntensity», «SNR») == 3) {my code} ' – zx8754
@ zx8754 это' if (length (intersect (names (DF [[1]], с ("ID",» SignalIntensity "," SNR ") == 3) {my code}' или if (length (intersect (имена (df [[1]], c («ID», «SignalIntensity», «SNR») == 3)))) {мой код} –
@ zx8754, Aaghaz, пожалуйста, сообщите об этом в ответ – smci