Однострочник может быть,
data[rowSums(data[-1]) > 0,] <- replace(data[rowSums(data[-1]) > 0,],
data[rowSums(data[-1]) > 0,] == 0,
NA)
data
# id V1 V2 V3
#1 A 1 NA 1
#2 B 0 0 0
#3 C NA NA 1
Чтобы избежать повторного вычисления одного и того же выражения, мы можем сначала определить его, т.е.
v1 <- rowSums(data[-1]) > 0
data[v1,] <- replace(data[v1,],
data[v1,] == 0,
NA)
Я использовал Silverlight 2 с января, когда это было в частном выпуске, и мы столкнулись с этой проблемой, весь наш XAML был в одном большом файле. Что мы сделали, поскольку лучшие практики должны были разбить пользовательский интерфейс в средства управления отдельного пользователя на основе визуальной классификации (заголовок, нижний колонтитул, средства управления навигацией и т.д.) Первоначально мы пытались использовать вложенные холсты (сетки еще не были добавлены к платформе), и это превратилось в кошмар обслуживания позже.
В Смешении можно на самом деле выбрать Холст/сетку и т.д.... из окна Objects и Timeline, щелкнуть правой кнопкой по нему, и Вам дают опцию "Make Control..", которую это сделало для быстрого факторинга ре и модульного исполнения нашего основного файла XAML. Мы затем использовали События, чтобы позволить пользовательским элементам управления связываться друг между другом.
Надежда это помогает, и удачи!
Это действительно требует, чтобы определенная работа поддержала файлы XAML, но в основном, то, что необходимо сделать, разделено их в файлах ресурсов (Словари Ресурса XAML) использование схемы, которая имеет смысл Вам.
Например, мы используем схему, где у нас есть структура папок как это:
Ресурсы (содержит Файлы XAML, которые представляют пользовательские элементы управления и страницы),
Ваша структура могла бы варьироваться, но, разделение всех ресурсов в различных файлах действительно делает обслуживание более легким в конечном счете.
Я - Творческий Разработчик и работаю в Смешении экстенсивно.
Я опубликовал несколько мыслей в прошлом году о содержании в чистоте XAML.
Silverlight в настоящее время не поддерживает MergedResourceDictionaries, таким образом, трудно вспыхнуть XAML в отдельные файлы ResourceDictionary, как я предположил в другом сообщении.
У Paul Stovell также есть некоторые интересные инструкции для XAML.