Вот базовый метод R.
# split the strings
temp <- strsplit(df$y, split="")
# maximum length of the list items
maxL <- max(sapply(temp, length))
# contstruct data.frame with NAs as fills
temp <- data.frame(do.call(rbind, lapply(temp, function(i) c(i, rep(NA, maxL-length(i))))))
# add to df
df <- cbind(x=df[, -2], temp)
, который приводит к
x X1 X2 X3 X4 X5 X6
1 X1 0 0 L 0 <NA> <NA>
2 X2 0 <NA> <NA> <NA> <NA> <NA>
3 X3 0 0 0 1 2 L
4 X4 0 1 2 3 L 0
5 X5 0 D 0 <NA> <NA> <NA>
. Я использовал stringsAFactors = FALSE при создании df:
df <- data.frame(x, y, stringsAsFactors = F)
Но, если бы я этого не сделал, этот код привел бы к ошибке, как указывает @ m0h3n. Без этой альтернативной конструкции data.frame необходимо обернуть df $ y в as.character
, чтобы принудить переменную от коэффициента к символу:
# split the strings
temp <- strsplit(as.character(df$y), split="")
Спасибо @ m0h3n за это.
Я не уверен, являюсь ли я всеми подробностями понимания Вашего вопроса, но рассмотрением Вашей проблемы в целом (как я развертываю приложение Python на Mac), я склонен сказать, что ответ является py2app. В основном это свяжет интерпретатор Python и все соответствующие файлы Python для Вас, и даст Вам scriptable систему, которую можно использовать для добавления в том, в чем других ресурсах/зависимостях Вы нуждаетесь.
В то время как это не руководство, только предназначенное для python/GTK +/OS X, это сообщение является хорошим, подробным описанием чужой попытки сделать большую часть того, что Вы описываете. Очевидно, определенный для приложения материал собирается варьироваться.
Собственный компонент, выглядящий виджетами, является вполне сложным. Существует начало кварцевого механизма (для theming) найдено здесь, http://git.gnome.org/browse/gtk+/tree/gdk/quartz Для автономных приложений проверяет недавно выпущенный пакет на http://live.gnome.org/GTK%2B/OSX