объединение нескольких столбцов в data.table

У меня есть следующий образецdata.table:

dtb <- data.table(a=sample(1:100,100), b=sample(1:100,100), id=rep(1:10,10))

Я хотел бы объединить все столбцы (a и b, хотя они должны быть разделены )по идентификатору, например, с помощью colSums. Каков правильный способ сделать это? Следующее не работает:

 dtb[,colSums, by="id"]

Это всего лишь пример, и в моей таблице много столбцов, поэтому я не хочу указывать их все в имени функции

-. 121 ---1030736- Как мне заставить java выйти при передаче в голову У меня есть процесс Java, который выводит много текста. Иногда я просто хочу увидеть немного текста. С обычными программами я могу просто сделать :$ myprog | head я просто увижу 10 строк вывода myprog...

У меня есть процесс Java, который выводит много текста. Иногда я просто хочу увидеть немного текста. С обычными программами я могу просто:

$ myprog | head

Я просто увижу 10 строк вывода от myprog, и он немедленно завершится. Но с java, если я:

$ java MyClass | head

Я получаю первые 10 строк вывода, но процесс java не завершится, пока он не завершит всю свою обработку. Это похоже на то, что java не заботится о том, что stdout (System.out )исчез, а головной процесс мертв и ушел.

Все остальные программы либо закрываются молча, как cat:

$ cat /etc/group | head
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:

Или выйдите со сломанной ошибкой/исключением канала, например python:

$ python -c 'while True: print "hi"' | head
hi
hi
hi
hi
hi
hi
hi
hi
hi
hi
Traceback (most recent call last):
  File "<string>", line 1, in <module>
IOError: [Errno 32] Broken pipe

Как заставить java вызывать исключение при вызове System.out.println (), когда я передаю вывод чему-то вроде head? Я хотел бы иметь возможность сделать что-то вроде:

try {
    while(true) {
        System.out.println("hi");
    }
} catch(BrokenPipeException e) {
    // exit gracefully
}
17
задан Adrian Heine 22 April 2015 в 20:24
поделиться