Цель обучения C без Mac

Ну, конечно, есть много решений вашей проблемы. Но так как вы специально запросили цикл и предоставили свою собственную функцию, я постарался придерживаться того, что вы сделали, насколько это возможно. Однако у вас есть две growth -колонки, поэтому я взял growth.y.

datf <- read.table(text="
                        station_id   timestamp   growth.x   growth.y   color  
                        DB1      1/14/01     59.916     59.9164    black  
                        DB1      1/14/02     316.128    316.128    black  
                        DB1      1/14/03      12.456     12.456    black  
                        DB1      1/14/04     537.443    537.443    black", 
                        header = TRUE, stringsAsFactors = FALSE) 

#I had to change your function a little:

check_it <- function(x, dat) 
  if(dat[x, "growth.y"] >500){
    return("green")
  } else if(dat[x, "growth.y"] < 0) {
    return("red")
  } else {
    return("blue")
  }

Теперь ваша переменная цикла x соответствует индексу строки в data.frame, и вы просматриваете его. До этого это был не тот случай, когда вы просто передавали число в свою функцию.

#And finally the loop
for(x in 1:nrow(datf)){

  datf[x, "color"] <- check_it(x, datf)

}

> datf
  station_id timestamp growth.x growth.y color
1        DB1   1/14/01   59.916  59.9164  blue
2        DB1   1/14/02  316.128 316.1280  blue
3        DB1   1/14/03   12.456  12.4560  blue
4        DB1   1/14/04  537.443 537.4430 green

Однако вы должны рассмотреть вопрос о семействе * apply-function.

8
задан 12 May 2009 в 02:35
поделиться

6 ответов

Википедия говорит

Сегодня он используется в основном на устройствах Apple Mac OS X и iPhone OS, два среды, основанные, хотя и не совместим со стандартом OpenStep, и это основной используемый язык для Apple Cocoa API, хотя это было изначально использовался как основной язык на ОС NeXTSTEP от NeXT. общий Программы на Objective-C, которые не делают использование этих библиотек также может быть скомпилирован для любой системы, поддерживаемой gcc, который включает Objective-C компилятор.

Objective-C сегодня часто используется в тандем с фиксированной библиотекой стандартные объекты (часто называемые «комплект» или «каркас»), например какао или GNUstep.

Может быть, вам стоит приобрести виртуальную машину Linux, если вы в основном работаете с Windows и у вас работает GNUStep .

6
ответ дан 5 December 2019 в 14:06
поделиться

Есть разница между языком Objective-C и фреймворками, которые Apple построила поверх него. Эти фреймворки состоят из набора объектов, которые вы можете использовать в своем коде и особенно полезны, если вы ориентируетесь на Mac или iPhone. В GNUStep есть некоторые похожие объекты для его частей, но это не полная замена библиотеки Cocoa / etc и особенно не касается ничего, что связано с iPhone.

GNUStep и язык Objective-C (через gcc) доступны для многих платформ, и вы можете писать свои собственные программы, использующие объекты Objective-C и взаимодействующие с любым API C из Objective-C.

Objective-C - это надмножество C, поэтому на самом деле не более снисходительно, чем C, но, возможно, более снисходительно, чем C ++ (почти надмножество C). Вы также можете смешивать Objective-C и C ++ с GCC, но это становится немного сложнее, особенно в отношении обработки исключений.

Однако для начала и поиграться с языком, GNUStep и GCC были бы хорошим вариантом.

1
ответ дан 5 December 2019 в 14:06
поделиться

Apple внесла изменения в цель c обратно в gcc (не то чтобы у них был большой выбор, поскольку у них была GPL). Так что везде, где вы можете настроить gcc, вы можете установить компилятор objective-c.

Кроме того, среда Gnustep может дать вам немного вкуса исходной среды OpenStep / NextStep.

1126538]

3
ответ дан 5 December 2019 в 14:06
поделиться

Я не вижу веских причин, почему вы не можете использовать Objective C для собственных расширений Ruby, за исключением того, что вы не получите особой выгоды. Вам все равно придется использовать вызовы Api нижнего уровня C, поскольку, насколько я знаю, нет никаких привязок ruby ​​к objective-c. Кроме того, Objective C поставляется с довольно обширной библиотекой служебных классов, которые, хотя и полезны, нелегко оправдать их размер и вес в контексте расширения ruby.

0
ответ дан 5 December 2019 в 14:06
поделиться

Вы можете использовать эту страницу для простых экспериментов с ObjC: http://www.codesign.cz/LearnObjC/

0
ответ дан 5 December 2019 в 14:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: