Начиная с вашего фрейма данных DF
, вы можете использовать пакет data.table
:
library(data.table)
## EDIT: As suggested by @MichaelChirico, setDT converts a
## data.frame to a data.table by reference and is preferred
## if you don't mind losing the data.frame
setDT(DF)
# EDIT: To get the column name 'Mean':
DF[, .(Mean = rowMeans(.SD)), by = ID]
# ID Mean
# [1,] A 3.666667
# [2,] B 4.333333
# [3,] C 3.333333
# [4,] D 4.666667
# [5,] E 4.333333
Вы захотите использовать Система. Диагностика. Процесс. Уничтожьте метод. Можно получить процесс, который Вы хотите использовать Система. Диагностика. Proccess. GetProcessesByName.
Примеры были уже отправлены здесь, но я нашел, что версия non-.exe работала лучше, таким образом, что-то как:
foreach ( Process p in System.Diagnostics.Process.GetProcessesByName("winword") )
{
try
{
p.Kill();
p.WaitForExit(); // possibly with a timeout
}
catch ( Win32Exception winException )
{
// process was terminating or can't be terminated - deal with it
}
catch ( InvalidOperationException invalidException )
{
// process has already exited - might be able to let this one go
}
}
Вы, вероятно, не должны иметь дело с NotSupportedException
, который предполагает, что процесс является удаленным.
Уничтожение Word обрабатывает, напрямую возможно (см. некоторые из других ответов), но напрямую грубый и опасный: что, если у пользователя есть важные несохраненные изменения в открытом документе? Не говоря уже об устаревших временных файлах это оставит позади...
Это, вероятно, насколько можно пойти в этом отношении (VB.NET):
Dim proc = Process.GetProcessesByName("winword")
For i As Integer = 0 To proc.Count - 1
proc(i).CloseMainWindow()
Next i
Это закроет все открытые окна Word организованным способом (предлагающий пользователю сохранить его работу если применимо). Конечно, пользователь может всегда нажимать 'Cancel' в этом сценарии, таким образом, необходимо быть в состоянии обработать этот случай также (предпочтительно путем подъема, "нравятся близко всем экземплярам Word, иначе мы не можем продолжить" диалоговое окно...)
Вот легкий пример того, как уничтожить весь Word Processes.
Process[] procs = Process.GetProcessesByName("winword");
foreach (Process proc in procs)
proc.Kill();
Можно обойти проблемы безопасности и создать намного более вежливое приложение путем простой проверки, работает ли процесс Word и просит, чтобы пользователь закрыл его, затем нажмите кнопку 'Continue' в приложении. Это - подход, проявленный многими установщиками.
private bool isWordRunning()
{
return System.Diagnostics.Process.GetProcessesByName("winword").Length > 0;
}
, Конечно, можно только сделать это, если приложение имеет GUI
Что-то вроде этого будет работать:
foreach ( Process process in Process.GetProcessesByName( "winword" ) )
{
process.Kill();
process.WaitForExit();
}