У меня есть следующий образец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, который выводит много текста. Иногда я просто хочу увидеть немного текста. С обычными программами я могу просто:
$ 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
}