2017-02-01 4 views
2

Ich habe einen Datenrahmen (databycitydiff2) Spalte wie folgt:R prüfen, ob es einen Brief gibt und dann den Wert multiplizieren mit -1

x 
10N 
20N 
35S 
25S 

Was ich will, ist zu überprüfen, um zu tun, wenn der Brief am Ende ist N oder S. Wenn es S ist, möchte ich das S entfernen und die Zahl mit -1 multiplizieren. Wenn es N ist, dann will ich nur die N.

ich folgende versucht zu entfernen, aber es fügt „-“ für alle Werte:

databycitydiff2$x<-gsub("N", "", databycitydiff2$x) 
databycitydiff2$x<-sub("^","-", gsub("S", "", databycitydiff2$x)) 

Was ich erhalte, ist:

x 
-10 
-20 
-35 
-25 

Was ich will ist:

x 
10 
20 
-35 
-25 

Irgendwelche Vorschläge? Danke!

dput der Datenrahmen-Säule (bevor ich es geändert as.character):

structure(c(57L, 47L, 62L, 45L, 45L, 57L, 62L, 55L, 29L, 55L, 
60L, 54L, 70L, 70L, 62L, 13L, 55L, 37L, 33L, 29L, 70L, 23L, 72L, 
11L, 72L, 55L, 19L, 51L, 62L, 29L, 37L, 72L, 36L, 7L, 17L, 71L, 
9L, 41L, 29L, 21L, 55L, 37L, 25L, 19L, 21L, 13L, 29L, 31L, 49L, 
21L, 31L, 25L, 35L, 37L, 41L, 17L, 45L, 39L, 45L, 49L, 70L, 17L, 
6L, 7L, 37L, 72L, 41L, 26L, 35L, 38L, 45L, 45L, 45L, 37L, 41L, 
37L, 37L, 27L, 23L, 45L, 47L, 37L, 58L, 61L, 55L, 53L, 27L, 41L, 
35L, 55L, 35L, 29L, 13L, 2L, 7L, 44L, 5L, 22L, 58L, 54L, 37L, 
19L, 31L, 27L, 58L, 12L, 72L, 33L, 21L, 2L, 9L, 21L, 65L, 49L, 
51L, 45L, 58L, 9L, 53L, 22L, 45L, 35L, 33L, 41L, 47L, 31L, 37L, 
45L, 25L, 37L, 39L, 14L, 39L, 9L, 22L, 18L, 57L, 55L, 37L, 49L, 
58L, 25L, 7L, 22L, 57L, 23L, 20L, 4L, 51L, 71L, 35L, 4L, 20L, 
20L, 22L, 24L, 39L, 12L, 14L, 71L, 67L, 41L, 51L, 43L, 58L, 44L, 
41L, 37L, 61L, 49L, 37L, 21L, 33L, 39L, 31L, 37L, 31L, 9L, 57L, 
71L, 51L, 24L, 21L, 25L, 39L, 22L, 35L, 37L, 53L, 38L, 53L, 17L, 
45L, 29L, 7L, 70L, 55L, 8L, 55L, 25L, 5L, 70L, 71L, 37L, 72L, 
51L, 3L, 9L, 41L, 45L, 47L, 13L, 55L, 25L, 33L, 37L, 11L, 11L, 
27L, 21L, 29L, 29L, 42L, 5L, 27L, 53L, 51L, 21L, 37L, 37L, 45L, 
58L, 61L, 19L, 2L, 9L, 25L, 21L, 53L, 41L, 23L, 5L, 5L, 55L, 
23L, 55L, 39L, 15L, 15L, 44L, 71L, 37L, 5L, 21L, 7L, 43L, 49L, 
71L, 44L, 21L, 21L, 23L, 73L, 41L, 35L, 53L, 21L, 21L, 21L, 20L, 
3L, 21L, 27L, 45L, 72L, 19L, 21L, 29L, 60L, 3L, 20L, 70L, 3L, 
6L, 18L, 49L, 13L, 22L, 3L, 53L, 58L, 21L, 25L, 31L, 15L, 31L, 
7L, 53L, 39L, 29L, 44L, 3L, 20L, 17L, 35L, 29L, 25L, 23L, 53L, 
29L, 19L, 45L, 18L, 35L, 56L, 2L, 43L, 61L, 22L, 9L, 57L, 49L, 
9L, 53L, 55L, 18L, 33L, 33L, 33L, 44L, 6L, 29L, 29L, 26L, 45L, 
33L, 3L, 63L, 51L, 64L, 57L, 39L, 58L, 53L, 43L, 53L, 26L, 18L, 
25L, 7L, 21L, 23L, 23L, 27L, 19L, 21L, 19L, 19L, 23L, 11L, 25L, 
17L, 27L, 21L, 17L, 21L, 19L, 3L, 60L, 13L, 72L, 13L, 58L, 57L, 
23L, 11L, 27L, 54L, 19L, 47L, 7L, 43L, 15L, 39L, 25L, 25L, 20L, 
33L, 33L, 5L, 34L, 5L, 1L, 58L, 60L, 60L, 57L, 10L, 73L, 30L, 
26L, 15L, 3L, 58L, 71L, 43L, 70L, 39L, 21L, 26L, 49L, 60L, 56L, 
13L, 57L, 1L, 49L, 35L, 37L, 47L, 19L, 53L, 30L, 58L, 22L, 70L, 
54L, 57L, 33L, 60L, 45L, 22L, 13L, 51L, 26L, 10L, 51L, 53L, 61L, 
44L, 71L, 58L, 60L, 60L, 51L, 54L, 45L, 57L, 7L, 28L, 58L, 24L, 
54L, 25L, 57L, 58L, 57L, 60L, 70L, 49L, 53L, 27L, 43L, 47L, 43L, 
43L, 29L, 44L, 37L, 16L, 55L, 27L, 9L, 18L, 5L, 25L, 35L, 29L, 
47L, 47L, 19L, 41L, 29L, 1L, 55L, 72L, 51L, 60L, 57L, 72L, 13L, 
9L, 3L, 22L, 3L, 30L, 18L, 37L, 54L, 72L, 41L, 3L, 9L, 12L, 29L, 
71L, 55L, 72L, 22L, 7L, 21L, 57L, 43L, 19L, 5L, 6L, 19L, 71L, 
47L, 17L, 71L, 22L, 18L, 20L, 3L, 38L, 19L, 39L, 30L, 3L, 70L, 
17L, 55L, 25L, 34L, 24L, 3L, 3L, 22L, 58L, 18L, 13L, 13L, 13L, 
33L, 3L, 43L, 73L, 37L, 33L, 24L, 2L, 28L, 20L, 39L, 3L, 44L, 
9L, 56L, 30L, 3L, 47L, 17L, 33L, 17L, 21L, 21L, 27L, 31L, 33L, 
21L, 17L, 49L, 27L, 49L, 31L, 31L, 45L, 21L, 26L, 3L, 57L, 33L, 
35L, 21L, 35L, 72L, 61L, 58L, 58L, 61L, 57L, 45L, 31L, 21L, 25L, 
63L, 54L, 49L, 58L, 54L, 37L, 13L, 25L, 23L, 19L, 13L, 47L, 71L, 
47L, 37L, 27L, 7L, 38L, 13L, 17L, 73L, 14L, 5L, 8L, 6L, 31L, 
29L, 53L, 58L, 7L, 23L, 14L, 31L, 37L, 9L, 7L, 29L, 57L, 6L, 
50L, 33L, 19L, 23L, 23L, 27L, 33L, 71L, 71L, 71L, 71L, 56L, 56L, 
71L, 19L, 19L, 71L, 56L, 56L, 56L, 56L, 71L, 71L, 41L, 71L, 71L, 
56L, 71L, 71L, 56L, 56L, 72L, 72L, 19L, 37L, 27L, 51L, 45L, 53L, 
17L, 13L, 12L, 45L, 18L, 58L, 17L, 57L, 70L, 41L, 35L, 41L, 52L, 
72L, 38L, 39L, 32L, 18L, 49L, 37L, 18L, 61L, 28L, 30L, 25L, 32L, 
58L, 5L, 33L, 18L, 27L, 28L, 33L, 70L, 22L, 70L, 58L, 58L, 57L, 
49L, 57L, 28L, 17L, 13L, 22L, 9L, 16L, 13L, 10L, 23L, 3L, 36L, 
24L, 56L, 8L, 57L, 5L, 9L, 57L, 29L, 57L, 55L, 25L, 11L, 37L, 
35L, 9L, 25L, 41L, 21L, 33L, 70L, 33L, 5L, 21L, 41L, 21L, 71L, 
25L, 25L, 57L, 33L, 7L, 45L, 45L, 61L, 70L, 7L, 41L, 31L, 41L, 
72L, 53L, 29L, 23L, 49L, 31L, 27L, 27L, 13L, 39L, 73L, 33L, 41L, 
25L, 71L, 29L, 31L, 47L, 60L, 45L, 3L, 47L, 21L, 31L, 33L, 39L, 
21L, 21L, 25L, 9L, 25L, 17L, 22L, 27L, 51L, 70L, 53L, 25L, 60L, 
23L, 3L, 41L, 9L, 3L, 18L, 55L, 3L, 33L, 56L, 23L, 21L, 17L, 
45L, 33L, 39L, 58L, 58L, 39L, 55L, 43L, 20L, 35L, 57L, 49L, 23L, 
60L, 58L, 57L, 21L, 33L, 72L, 15L, 62L, 52L, 47L, 22L, 23L, 30L, 
19L, 21L, 37L, 45L, 41L, 62L, 34L, 35L, 57L, 47L, 37L, 17L, 43L, 
70L, 61L, 47L, 45L, 60L, 58L, 72L, 70L, 58L, 29L, 3L, 31L, 35L, 
31L, 9L, 72L, 45L, 60L, 1L, 61L, 51L, 45L, 11L, 22L, 58L, 19L, 
57L, 58L, 31L, 70L, 55L, 57L, 54L, 5L, 41L, 41L, 33L, 9L, 45L, 
33L, 41L, 37L, 18L, 64L, 57L, 27L, 25L, 49L, 39L, 57L, 29L, 54L, 
39L, 31L, 25L, 27L, 21L, 27L, 25L, 35L, 6L, 45L, 21L, 24L, 49L, 
22L, 35L, 20L, 25L, 31L, 47L, 49L, 15L, 28L, 70L, 51L, 45L, 35L, 
49L, 26L, 45L, 25L, 45L, 33L, 44L, 21L, 24L, 18L, 22L, 22L, 57L, 
72L, 53L, 39L, 21L, 37L, 37L, 45L, 35L, 35L, 37L, 35L, 37L, 37L, 
35L, 29L, 33L, 37L, 5L, 45L, 47L, 33L, 51L, 25L, 63L, 58L, 23L, 
24L, 9L, 55L, 29L, 51L, 71L, 21L, 21L, 29L, 25L, 9L, 25L, 37L, 
19L, 73L, 33L, 33L, 33L, 72L, 71L, 25L, 7L, 23L, 39L, 21L, 33L, 
70L, 70L, 60L, 60L, 45L, 40L, 21L, 58L, 43L, 25L, 51L, 49L, 57L, 
36L, 70L, 57L, 45L, 27L, 23L, 49L, 33L, 57L, 70L, 43L, 45L, 29L, 
61L, 63L, 35L, 57L, 58L, 21L, 12L, 31L, 28L, 16L, 3L, 58L, 39L, 
25L, 19L, 5L, 49L, 25L, 37L, 1L, 58L, 14L, 39L, 33L, 47L, 30L, 
53L, 49L, 37L, 51L, 71L, 60L, 30L, 3L, 17L, 25L, 72L, 31L, 33L, 
21L, 17L, 18L, 24L, 22L, 3L, 22L, 22L, 9L, 9L, 3L, 16L, 27L, 
5L, 11L, 49L, 23L, 25L, 33L, 33L, 11L, 15L, 23L, 9L, 11L, 27L, 
5L, 25L, 25L, 18L, 53L, 45L, 19L, 17L, 58L, 58L, 35L, 21L, 45L, 
37L, 37L, 5L, 31L, 58L, 9L, 19L, 41L, 45L, 33L, 23L, 54L, 53L, 
21L, 23L, 45L, 19L, 29L, 49L, 21L, 57L, 35L, 35L, 60L, 47L, 47L, 
58L, 37L, 35L, 37L, 41L, 29L, 19L, 58L, 29L, 33L, 21L, 27L, 14L, 
51L, 25L, 72L, 29L, 45L, 7L, 70L, 27L, 39L, 21L, 37L, 31L, 53L, 
54L, 57L, 54L, 64L, 37L, 51L, 39L, 25L, 11L, 35L, 29L, 58L, 35L, 
25L, 13L, 41L, 35L, 58L, 35L, 7L, 37L, 35L, 37L, 45L, 35L, 29L, 
37L, 3L, 48L, 35L, 45L, 17L, 25L, 19L, 51L, 29L, 54L, 22L, 21L, 
31L, 9L, 5L, 37L, 29L, 60L, 23L, 23L, 23L, 4L, 47L, 35L, 27L, 
33L, 33L, 8L, 6L, 41L, 21L, 27L, 29L, 9L, 60L, 11L, 39L, 21L, 
17L, 21L, 51L, 53L, 21L, 33L, 35L, 31L, 23L, 53L, 70L, 43L, 35L, 
1L, 7L, 18L, 8L, 11L, 35L, 37L, 35L, 37L, 70L, 72L, 13L, 37L, 
70L, 70L, 70L, 70L, 70L, 70L, 35L, 70L, 55L, 70L, 33L, 70L, 44L, 
72L, 10L, 72L, 70L, 3L, 72L, 35L, 56L, 23L, 35L, 22L, 41L, 41L, 
21L, 56L, 41L, 35L, 54L, 23L, 70L, 53L, 18L, 43L, 58L, 18L, 44L, 
35L, 25L, 17L, 33L, 37L, 71L, 58L, 37L, 33L, 33L, 70L, 37L, 37L, 
70L, 41L, 15L, 37L, 33L, 31L, 39L, 45L, 22L, 10L, 55L, 22L, 26L, 
35L, 22L, 22L, 22L, 22L, 21L, 22L, 62L, 39L, 35L, 37L, 70L, 17L, 
62L, 39L, 45L, 35L, 39L, 20L, 21L, 73L, 22L, 33L, 29L, 27L, 72L, 
29L, 27L, 25L, 56L, 35L, 31L, 72L, 17L, 25L, 23L, 1L, 2L, 33L, 
19L, 21L, 21L, 22L, 26L, 33L, 31L, 25L, 73L, 8L, 37L, 45L, 31L, 
19L, 31L, 23L, 33L, 27L, 4L, 53L, 25L, 21L, 31L, 31L, 49L, 27L, 
37L, 35L, 31L, 41L, 21L, 5L, 19L, 21L, 33L, 49L, 72L, 70L, 37L, 
39L, 23L, 29L, 29L, 29L, 45L, 45L, 45L, 27L, 27L, 49L, 29L, 45L, 
49L, 13L, 51L, 71L, 25L, 39L, 26L, 1L, 26L, 45L, 55L, 71L, 3L, 
73L, 31L, 71L, 43L, 20L, 24L, 10L, 19L, 22L, 41L, 3L, 35L, 8L, 
14L, 3L, 39L, 35L, 25L, 29L, 21L, 37L, 11L, 35L, 56L, 61L, 58L, 
39L, 70L, 21L, 60L, 17L, 37L, 35L, 31L, 21L, 61L, 31L, 1L, 57L, 
56L, 7L, 21L, 3L, 70L, 3L, 5L, 25L, 41L, 61L, 21L, 7L, 11L, 23L, 
37L, 39L, 51L, 71L, 56L, 13L, 35L, 54L, 29L, 35L, 41L, 35L, 29L, 
37L, 9L, 57L, 33L, 35L, 37L, 31L, 27L, 23L, 57L, 7L, 73L, 61L, 
37L, 37L, 35L, 37L, 41L, 61L, 71L, 53L, 71L, 71L, 23L, 54L, 71L, 
61L, 44L, 35L, 51L, 29L, 35L, 54L, 27L, 11L, 19L, 29L, 31L, 27L, 
19L, 21L, 9L, 53L, 61L, 7L, 33L, 11L, 33L, 29L, 39L, 45L, 21L, 
27L, 33L, 27L, 60L, 57L, 57L, 16L, 44L, 56L, 31L, 28L, 3L, 16L, 
13L, 60L, 44L, 37L, 63L, 54L, 37L, 1L, 15L, 35L, 72L, 35L, 49L, 
2L, 2L, 35L, 49L, 49L, 6L, 61L, 15L, 71L, 26L, 15L, 37L, 35L, 
57L, 3L, 37L, 37L, 33L, 72L, 37L, 7L, 11L, 72L, 61L, 64L, 35L, 
37L, 57L, 37L, 39L, 19L, 72L, 39L, 45L, 55L, 37L, 54L, 62L, 60L, 
29L, 23L, 55L, 55L, 70L, 5L, 62L, 70L, 49L, 51L, 61L, 57L, 54L, 
56L, 21L, 28L, 26L, 53L, 15L, 55L, 43L, 1L, 33L, 6L, 55L, 21L, 
37L, 47L, 70L, 43L, 3L, 23L, 4L, 35L, 35L, 61L, 58L, 33L, 35L, 
7L, 35L, 49L, 14L, 58L, 9L, 23L, 36L, 30L, 13L, 30L, 13L, 41L, 
60L, 17L, 29L, 72L, 72L, 28L, 55L, 55L, 31L, 37L, 37L, 41L, 27L, 
25L, 27L, 24L, 13L, 35L, 41L, 47L, 37L, 13L, 33L, 3L, 27L, 27L, 
27L, 19L, 37L, 29L, 21L, 45L, 13L, 51L, 71L, 54L, 53L, 5L, 60L, 
45L, 7L, 49L, 57L, 58L, 58L, 57L, 25L, 71L, 35L, 27L, 60L, 29L, 
71L, 57L, 39L, 57L, 19L, 23L, 37L, 45L, 1L, 21L, 8L, 4L, 57L, 
8L, 6L, 20L, 51L, 27L, 45L, 37L, 27L, 18L, 37L, 37L, 41L, 37L, 
54L, 7L, 58L, 15L, 41L, 35L, 21L, 23L, 60L, 14L, 51L, 45L, 2L, 
6L, 47L, 44L, 47L, 22L, 33L, 3L, 51L, 53L, 47L, 23L, 27L, 35L, 
25L, 17L, 3L, 27L, 9L, 39L, 55L, 47L, 46L, 31L, 39L, 73L, 8L, 
10L, 33L, 57L, 6L, 7L, 23L, 31L, 54L, 73L, 33L, 35L, 27L, 24L, 
10L, 58L, 25L, 29L, 12L, 57L, 51L, 61L, 37L, 37L, 19L, 57L, 57L, 
58L, 45L, 31L, 57L, 23L, 9L, 20L, 1L, 4L, 44L, 31L, 37L, 9L, 
7L, 21L, 47L, 71L, 7L, 45L, 3L, 22L, 72L, 58L, 71L, 60L, 37L, 
10L, 11L, 21L, 5L, 5L, 57L, 5L, 71L, 56L, 9L, 47L, 53L, 70L, 
43L, 72L, 3L, 71L, 39L, 17L, 29L, 61L, 9L, 70L, 1L, 5L, 25L, 
16L, 37L, 47L, 19L, 3L, 33L, 23L, 5L, 7L, 9L, 41L, 55L, 54L, 
2L, 13L, 26L, 19L, 26L, 40L, 56L, 3L, 44L, 3L, 7L, 39L, 20L, 
41L, 70L, 37L, 35L, 3L, 22L, 37L, 3L, 31L, 47L, 44L, 29L, 5L, 
30L, 37L, 31L, 56L, 25L, 21L, 45L, 73L, 27L, 26L, 35L, 37L, 37L, 
35L, 3L, 25L, 22L, 11L, 22L, 49L, 19L, 21L, 58L, 1L, 73L, 55L, 
7L, 56L, 19L, 43L, 55L, 17L, 19L, 7L, 15L, 40L, 35L, 34L, 41L, 
34L, 5L, 37L, 33L, 33L, 39L, 29L, 13L, 56L, 54L, 33L, 17L, 9L, 
60L, 25L, 37L, 31L, 61L, 26L, 60L, 26L, 16L, 51L, 47L, 13L, 35L, 
37L, 72L, 51L, 60L, 25L, 43L, 23L, 23L, 37L, 35L, 53L, 33L, 37L, 
9L, 31L, 31L, 70L, 49L, 39L, 57L, 31L, 15L, 22L, 71L, 3L, 44L, 
25L, 70L, 9L, 72L, 25L, 12L, 36L, 33L, 49L, 51L, 19L, 51L, 9L, 
27L, 70L, 17L, 25L, 35L, 35L, 9L, 71L, 21L, 61L, 44L, 56L, 47L, 
25L, 72L, 3L, 49L, 6L, 53L, 29L, 23L, 53L, 39L, 31L, 68L, 61L, 
21L, 37L, 2L, 14L, 29L, 29L, 25L, 16L, 71L, 3L, 19L, 61L, 49L, 
10L, 21L, 35L, 7L, 39L, 37L, 21L, 72L, 35L, 19L, 21L, 2L, 11L, 
47L, 7L, 9L, 72L, 2L, 47L, 11L, 17L, 45L, 10L, 57L, 53L, 27L, 
31L, 54L, 13L, 19L, 9L, 27L, 31L, 21L, 45L, 53L, 31L, 21L, 33L, 
45L, 45L, 37L, 21L, 37L, 21L, 37L, 23L, 56L, 17L, 21L, 41L, 17L, 
23L, 25L, 39L, 49L, 72L, 8L, 61L, 65L, 70L, 54L, 29L, 15L, 24L, 
33L, 42L, 57L, 49L, 27L, 45L, 29L, 45L, 45L, 28L, 61L, 58L, 39L, 
35L, 37L, 5L, 17L, 70L, 7L, 5L, 7L, 49L, 17L, 26L, 39L, 35L, 
37L, 58L, 22L, 29L, 47L, 35L, 35L, 22L, 13L, 61L, 64L, 62L, 62L, 
55L, 55L, 55L, 33L, 37L, 31L, 61L, 7L, 37L, 69L, 35L, 37L, 38L, 
58L, 35L, 58L, 4L, 60L, 13L, 20L, 22L, 51L, 51L, 30L, 61L, 53L, 
60L, 60L, 49L, 61L, 57L, 70L, 7L, 27L, 47L, 35L, 54L, 53L, 70L, 
39L, 11L, 57L, 47L, 61L, 55L, 27L, 55L, 33L, 3L, 37L, 61L, 51L, 
61L, 72L, 57L, 35L, 72L, 31L, 35L, 37L, 43L, 60L, 41L, 58L, 60L, 
71L, 54L, 9L, 60L, 45L, 37L, 61L, 33L, 70L, 9L, 55L, 35L, 43L, 
57L, 58L, 53L, 25L, 33L, 45L, 61L, 13L, 26L, 53L, 27L, 55L, 60L, 
57L, 39L, 14L, 22L, 49L, 70L, 64L, 39L, 58L, 46L, 57L, 37L, 47L, 
51L, 70L, 5L, 67L, 41L, 47L, 55L, 70L, 58L, 35L, 37L, 70L, 39L, 
12L, 73L, 51L, 13L, 36L, 21L, 71L, 17L, 71L, 2L, 58L, 51L, 70L, 
7L, 19L, 29L, 3L, 23L, 16L, 39L, 28L, 25L, 7L, 41L, 17L, 4L, 
35L, 43L, 3L, 2L, 27L, 56L, 47L, 56L, 72L, 23L, 61L, 71L, 21L, 
29L, 13L, 25L, 37L, 72L, 55L, 32L, 24L, 17L, 54L, 49L, 16L, 56L, 
41L, 56L, 35L, 56L, 71L, 1L, 28L, 1L, 71L, 21L, 23L, 45L, 33L, 
11L, 71L, 29L, 23L, 14L, 71L, 58L, 54L, 2L, 71L, 41L, 32L, 71L, 
8L, 25L, 60L, 45L, 43L, 55L, 39L, 63L, 47L, 32L, 47L, 62L, 47L, 
35L, 15L, 9L, 3L, 58L, 22L, 73L, 61L, 60L, 65L, 54L, 31L, 22L, 
3L, 41L, 11L, 5L, 33L, 7L, 53L, 27L, 30L, 22L, 27L, 13L, 19L, 
22L, 3L, 23L, 35L, 37L, 21L, 21L, 27L, 58L, 22L, 49L, 45L, 56L, 
7L, 33L, 49L, 58L, 51L, 47L, 71L, 57L, 57L, 22L, 20L, 47L, 61L, 
27L, 54L, 35L, 13L, 5L, 3L, 24L, 2L, 57L, 19L, 13L, 5L, 36L, 
2L, 43L, 18L, 73L, 31L, 25L, 51L, 13L, 45L, 30L, 2L, 57L, 28L, 
26L, 22L, 18L, 58L, 20L, 58L, 44L, 57L, 22L, 49L, 20L, 60L, 24L, 
56L, 47L, 47L, 71L, 9L, 60L, 47L, 41L, 62L, 73L, 3L, 13L, 39L, 
3L, 46L, 17L, 3L, 17L, 41L, 13L, 10L, 59L, 5L, 29L, 17L, 25L, 
21L, 71L, 71L, 71L, 71L, 37L, 49L, 13L, 35L, 29L, 31L, 37L, 37L, 
25L, 51L, 29L, 37L, 21L, 41L, 19L, 53L, 51L, 35L, 60L, 23L, 39L, 
53L, 32L, 22L, 14L, 41L, 17L, 29L, 9L, 2L, 7L, 34L, 2L, 23L, 
37L, 7L, 35L, 3L, 57L, 25L, 29L, 11L, 23L, 19L, 19L, 11L, 72L, 
19L, 21L, 23L, 37L, 33L, 51L, 27L, 71L, 36L, 21L, 35L, 26L, 53L, 
56L, 11L, 25L, 21L, 15L, 39L, 54L, 21L, 19L, 49L, 33L, 43L, 5L, 
57L, 73L, 58L, 39L, 57L, 54L, 57L, 56L, 53L, 41L, 20L, 28L, 54L, 
23L, 27L, 67L, 25L, 35L, 18L, 22L, 20L, 28L, 33L, 39L, 62L, 51L, 
49L, 4L, 20L, 34L, 22L, 32L, 16L, 21L, 35L, 57L, 23L, 37L, 7L, 
47L, 47L, 27L, 47L, 12L, 29L, 34L, 41L, 60L, 53L, 60L, 58L, 54L, 
5L, 58L, 57L, 27L, 2L, 49L, 26L, 60L, 63L, 57L, 57L, 22L, 22L, 
20L, 22L, 22L, 28L, 18L, 22L, 24L, 30L, 16L, 22L, 22L, 54L, 45L, 
18L, 25L, 33L, 37L, 39L, 27L, 35L, 33L, 37L, 21L, 29L, 25L, 31L, 
51L, 20L, 60L, 41L, 51L, 27L, 37L, 35L, 41L, 37L, 11L, 17L, 71L, 
60L, 49L, 45L, 58L, 37L, 45L, 24L, 23L, 32L, 8L, 53L, 58L, 60L, 
2L, 41L, 19L, 27L, 45L, 7L, 29L, 35L, 34L, 46L, 13L, 33L, 9L, 
39L, 17L, 3L, 39L, 13L, 17L, 9L, 24L, 34L, 19L, 33L, 34L, 9L, 
72L, 25L, 34L, 55L, 7L, 17L, 7L, 13L, 9L, 36L, 7L, 35L, 19L, 
23L, 19L, 35L, 55L, 23L, 35L, 25L, 33L, 25L, 39L, 35L, 7L, 27L, 
30L, 32L, 18L, 30L, 3L, 71L, 39L, 3L, 49L, 16L, 17L, 17L, 28L, 
22L, 13L, 22L, 55L, 30L, 37L, 49L, 60L, 62L, 58L, 31L, 72L, 37L, 
23L, 33L, 58L, 45L, 11L, 21L, 23L, 53L, 31L, 35L, 25L, 56L, 37L, 
33L, 53L, 55L, 1L, 5L, 71L, 57L, 37L, 19L, 39L, 56L, 56L, 7L, 
15L, 62L, 61L, 18L, 41L, 18L, 37L, 67L, 62L, 39L, 70L, 15L, 37L, 
27L, 33L, 31L, 37L, 53L, 72L, 31L, 35L, 27L, 21L, 23L, 27L, 29L, 
25L, 21L, 23L, 29L, 60L, 31L, 45L, 21L, 51L, 23L, 49L, 27L, 25L, 
23L, 21L, 31L, 7L, 35L, 44L, 29L, 29L, 33L, 41L, 13L, 33L, 21L, 
51L, 53L, 23L, 41L, 47L, 7L, 33L, 61L, 51L, 15L, 71L, 57L, 39L, 
27L, 3L, 23L, 35L, 72L, 1L, 73L, 1L, 7L, 49L, 23L, 29L, 29L, 
27L, 41L, 39L, 25L, 47L, 58L, 61L, 43L, 44L, 72L, 49L, 47L, 55L, 
25L, 37L, 72L, 7L, 3L, 64L, 57L, 36L, 4L, 27L, 71L, 22L, 2L, 
57L, 55L, 45L, 57L, 58L, 26L, 7L, 13L, 49L, 53L, 37L, 47L, 26L, 
13L, 35L, 45L, 47L, 57L, 63L, 49L, 47L, 60L, 63L, 60L, 39L, 58L, 
54L, 54L, 71L, 53L, 14L, 51L, 29L, 53L, 29L, 35L, 45L, 71L, 71L, 
27L, 72L, 56L, 25L, 22L, 71L, 57L, 61L, 55L, 43L, 39L, 37L, 33L, 
71L, 71L, 19L, 72L, 21L, 65L, 11L, 31L, 37L, 58L, 22L, 35L, 35L, 
58L, 58L, 36L, 65L, 47L, 60L, 53L, 60L, 51L, 37L, 41L, 22L, 56L, 
39L, 27L, 37L, 5L, 14L, 53L, 11L, 53L, 70L, 37L, 19L, 23L, 21L, 
23L, 43L, 21L, 39L, 33L, 37L, 37L, 35L, 37L, 35L, 55L, 44L, 38L, 
38L, 23L, 3L, 31L, 29L, 63L, 37L, 72L, 71L, 7L, 58L, 56L, 27L, 
65L, 19L, 40L, 25L, 56L, 56L, 56L, 41L, 37L, 39L, 43L, 23L, 31L, 
9L, 51L, 23L, 9L, 45L, 47L, 51L, 33L, 20L, 9L, 57L, 45L, 39L, 
63L, 35L, 45L, 71L, 22L, 17L, 40L, 43L, 9L, 45L, 14L, 43L, 71L, 
7L, 13L, 45L, 31L, 56L, 55L, 26L, 57L, 33L, 42L, 11L, 35L, 19L, 
20L, 56L, 39L, 1L, 47L, 45L, 55L, 12L, 17L, 19L, 13L, 29L, 17L, 
3L, 7L, 11L, 58L, 45L, 9L, 72L, 41L, 35L, 3L, 41L, 31L, 53L, 
47L, 53L, 33L, 58L, 51L, 56L, 45L, 3L, 72L, 7L, 3L, 5L, 7L, 21L, 
17L, 17L, 14L, 37L, 45L, 37L, 35L, 37L, 45L, 22L, 13L, 60L, 47L, 
41L, 62L, 17L, 35L, 35L, 49L, 31L, 41L, 25L, 41L, 49L, 35L, 23L, 
45L, 58L, 35L, 21L, 47L, 49L, 13L, 53L, 14L, 35L, 35L, 35L, 35L, 
45L, 48L, 51L, 54L, 51L, 72L, 33L, 51L, 66L, 73L, 56L, 37L, 37L, 
31L, 23L, 31L, 26L, 13L, 60L, 17L, 37L, 43L, 44L, 7L, 21L, 37L, 
55L, 39L, 45L, 51L, 64L, 3L, 11L, 49L, 62L, 57L, 62L, 35L, 18L, 
14L, 9L, 13L, 11L, 7L, 37L, 61L, 55L, 36L, 35L, 21L, 66L, 53L, 
58L, 13L, 54L, 21L, 60L, 9L, 55L, 71L, 25L, 64L, 37L, 9L, 39L, 
70L, 17L, 30L, 41L, 49L, 63L, 58L, 44L, 55L, 54L, 10L, 22L, 64L, 
19L, 42L, 3L, 45L, 3L, 39L, 34L, 39L, 45L, 51L, 26L, 37L, 23L, 
20L, 47L, 21L, 62L, 63L, 5L, 51L, 13L, 19L, 26L, 51L, 26L, 30L, 
51L, 54L, 21L, 54L, 13L, 47L, 29L, 11L, 18L, 9L, 9L, 13L, 43L, 
51L, 61L, 34L, 13L, 3L, 54L, 54L, 39L, 17L, 28L, 37L, 13L, 37L, 
18L, 10L, 73L, 47L, 13L, 47L, 61L, 47L, 53L, 54L, 63L, 20L, 54L, 
58L, 28L, 3L, 54L, 31L, 7L, 35L, 37L, 38L, 57L, 58L, 31L, 13L, 
17L, 31L, 47L, 55L, 58L, 71L, 41L, 45L, 49L, 58L, 70L, 33L, 37L, 
39L, 35L, 28L, 46L, 39L, 27L, 71L, 58L, 35L, 45L, 45L, 41L, 26L, 
39L, 35L, 57L, 22L, 47L, 57L, 37L, 26L, 58L, 58L, 58L, 36L, 58L, 
47L, 57L, 41L, 27L, 29L, 31L, 51L, 29L, 57L, 39L, 31L, 29L, 21L, 
24L, 17L, 23L, 35L, 27L, 33L, 29L, 35L, 21L, 35L, 27L, 17L, 39L, 
23L, 37L, 35L, 37L, 37L, 33L, 39L, 45L, 31L, 35L, 35L, 23L, 29L, 
37L, 35L, 54L, 70L, 29L, 37L, 33L, 19L, 23L, 33L, 47L, 39L, 35L, 
43L, 62L, 33L, 17L, 31L, 62L, 7L, 58L, 17L, 45L, 51L, 27L, 31L, 
53L, 37L, 39L, 31L, 45L, 31L, 49L, 27L, 33L, 71L, 35L, 35L, 37L, 
25L, 45L, 60L, 39L, 29L, 19L, 35L, 23L, 21L, 31L, 49L, 29L, 58L, 
31L, 57L, 21L, 51L, 53L, 37L, 70L, 17L, 37L, 56L, 31L, 35L, 17L, 
53L, 45L, 3L, 61L, 61L, 49L, 37L, 45L, 23L, 19L, 39L, 51L, 21L, 
25L, 33L, 33L, 53L, 29L, 19L, 23L, 37L, 33L, 37L, 19L, 29L, 61L, 
33L, 41L, 27L, 57L, 58L, 29L, 5L, 7L, 61L, 58L, 45L, 37L, 27L, 
53L, 33L, 58L), .Label = c("0.80N", "0.80S", "10.45N", "10.45S", 
"12.05N", "12.05S", "13.66N", "13.66S", "15.27N", "15.27S", "16.87N", 
"16.87S", "18.48N", "18.48S", "2.41N", "2.41S", "20.09N", "20.09S", 
"21.70N", "21.70S", "23.31N", "23.31S", "24.92N", "24.92S", "26.52N", 
"26.52S", "28.13N", "28.13S", "29.74N", "29.74S", "31.35N", "31.35S", 
"32.95N", "32.95S", "34.56N", "34.56S", "36.17N", "36.17S", "37.78N", 
"37.78S", "39.38N", "39.38S", "4.02N", "4.02S", "40.99N", "40.99S", 
"42.59N", "42.59S", "44.20N", "44.20S", "45.81N", "45.81S", "47.42N", 
"49.03N", "5.63N", "5.63S", "50.63N", "52.24N", "52.24S", "53.84N", 
"55.45N", "57.05N", "58.66N", "60.27N", "61.88N", "63.49N", "65.09N", 
"68.31N", "69.92N", "7.23N", "7.23S", "8.84N", "8.84S"), class = "factor") 
+1

Ihre 'dput' scheint für die Arbeit ich nach der Konvertierung in die Zeichenklasse. Möglicherweise müssen Sie das 'readr'-Paket aktualisieren. Oder R-Version. Wenn Sie nicht möchten, könnte die Basislösung von @ joel.wilson für Sie gut sein. – Psidom

Antwort

2

nicht, dass eine effiziente aber (und es wird angenommen, dass N/S immer vorhanden sein wird)

ifelse(grepl("N",df$x), as.numeric(gsub("N","",df$x)), -1*as.numeric(gsub("S","",df$x))) 
# [1] 10 20 -35 -25 
+0

@Ash ich habe versucht mit deinen echten Daten, es hat gut funktioniert ... hast du irgendwelche Probleme? –

+0

es hat gut funktioniert! Vielen Dank! – miababy

1

Hier ist eine Option mit parse_number() aus readr Paket die numerischen Werte aus der Spalte und endsWith (um die a effizientere Version von grepl) den nachgestellten Buchstaben zu überprüfen und einen Vektor von 1 oder -1 basierend auf machen, welchen Buchstaben es mit ein wenig Mathematik ist:

df$x <- with(df, readr::parse_number(x) * (-1)^endsWith(x, "S")) 

df 
# x 
#1 10 
#2 20 
#3 -35 
#4 -25 
+0

Hallo Psidom, ich erhalte einen Fehler: 'Fehler in nchar (Übereinstimmung):' nchar() 'benötigt einen Zeichenvektor' – miababy

+0

Es ist möglich, dass Ihre Spalte ein Faktor ist, versuchen Sie, es in das Zeichen 'df $ x <- zu konvertieren .zeichen (df $ x) '. – Psidom

+0

Nun heißt es: Fehler: is.string (match) ist nicht TRUE ' – miababy

3

Hier wird eine Base R Ansatz mit chartr „N“ ändern, um „+“ und „S“ auf „- “, und dann einige String-Verarbeitung mit sub ändern Sie die "+" und "-" vor der Nummer

tmp <- chartr("NS", "+-", c("10N", "10N", "35S", "25S")) 
as.numeric(sub("(\\d+)([-+])", "\\2\\1", tmp)) 
#[1] 10 10 -35 -25 
2

mit gsub und grepl sein:

as.numeric(gsub('[NS]','',x)) * c(-1,1)[grepl('N',x) + 1] 

Daraus ergibt sich:

> as.numeric(gsub('[NS]','',x)) * c(-1,1)[grepl('N',x) + 1] 
[1] 10 20 -35 -25 

Noch eine andere Möglichkeit ist, die gsubfn Paket zu verwenden:

x <- c('10N','20N','35S','25S') 

library(gsubfn) 
sapply(gsubfn('N|S', list('N'='*1','S'='*-1'), x), 
     function(x) eval(parse(text = x)), 
     USE.NAMES = FALSE) 

Daraus ergibt sich:

> sapply(gsubfn('N|S', list('N'='*1','S'='*-1'), x), 
+  function(x) eval(parse(text = x)), 
+  USE.NAMES = FALSE) 
[1] 10 20 -35 -25 
Verwandte Themen