Есть несколько хороших примеров для этого в R Wiki . Я украду пару здесь:
Метод слияния
Поскольку ваши ключи называются одинаковыми, короткий способ сделать внутреннее соединение - merge ():
merge(df1,df2)
полное внутреннее соединение (все записи из обеих таблиц) может быть создано с помощью ключевого слова «все»:
merge(df1,df2, all=TRUE)
левое внешнее соединение df1 и df2:
merge(df1,df2, all.x=TRUE)
правое внешнее объединение df1 и df2:
merge(df1,df2, all.y=TRUE)
вы можете перевернуть их, пощекотать их и протрите их, чтобы получить другие два внешних соединения, о которых вы спрашивали:)
Метод подстроки
Левое внешнее соединение с df1 слева с использованием метода подстроки будет:
df1[,"State"]<-df2[df1[ ,"Product"], "State"]
Можно создать и другую комбинацию внешних соединений путем макетирования примера нижнего нижнего соединения. (да, я знаю, что это эквивалент слова «Я оставлю это как упражнение для читателя ...»)
try
plt.yscale('log', nonposy='clip')
http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.yscale
Проблема заключается в том, нижняя часть баров находится в точке y = 0, а по умолчанию - маскировать недействительные точки (log(0)
-> undefined) при выполнении преобразования журнала (было обсуждение изменения этого, но я не помню, каким образом он пошел), поэтому, когда он пытается нарисовать прямоугольники для вашего штрихового графика, нижний край замаскирован -> нет прямоугольников.
np.logspace возвращает бины в [1-10]
, логарифмически разнесенные - в моем случае xx является npvector> 0, поэтому следующий код делает трюк
logbins=np.max(xx)*(np.logspace(0, 1, num=1000) - 1)/9
hh,ee=np.histogram(xx, density=True, bins=logbins)
ax.set_ylim(1, 30)
. – tacaswell 31 July 2013 в 12:39