根據乙個變數按某一數值型變數計算頻率或者佔比也許很簡單,吶sql,兩個呢,或許用sql就開始大想特想,消耗腦細胞。
i』m coming!
資料描述:有三列資料,前兩列是分類變數,第三列是數值型變數。
過程是這個樣子的:
1.將兩個分類變數的取值分別作為二維列聯表的行跟列,呀!列聯表用上啦,沒錯xtabs()來啦;
2.然後按照行或者列求比列就是了,沒錯,就是prop.table();
3.是二維列表怎磨破,as.data.frame()很強大,威武;
4.這樣就可以畫圖了;
5.要是想把頻數也加進來,我天,sqldf()各種匹,為啥不用merge()或者data.table包裡的東東?笨蛋!這裡有兩個分類變數,兩個條件我選sql,and,and,and到底!
that』s all!簡直可愛到哭!
chdata
<- read.csv('ch\\chdata.csv',encoding = 'utf8')
mytable
<- xtabs(count.1.~ip_province+isp,data = chdata)
protable
<- prop.table(mytable,1)
fretable
<- as.data.frame(protable)
library(ggplot2)
g<- ggplot(fretable, aes(x=ip_province,y=freq,fill = isp)) +
geom_bar(stat = 'identity',position = 'fill')
library(sqldf)
fredata
<- sqldf('select chdata.*,fretable.freq from chdata left join fretable where fretable.ip_province=chdata.ip_province and fretable.isp=chdata.isp')
write.csv(fredata,'ch\\fre_pro_data.csv')
按位異或交換兩個變數時的乙個陷阱
假設有兩個int型變數x和y,為了交換二者數值,我們可以借助臨時變數,如下所示 int tmp x x y y tmp 利用異或操作的特性,不使用臨時變數也可以到達交換的目的,如下所示 x x y y x y 即 y x y y x,y的值現在已經成x原來的值了 x x y x的值現在已經成y原來的...
不使用第三個變數交換兩個數值。
上班時間,閒來無事,寫個小演算法消遣下。題目來自某.net面試題集錦。相信很多看官也耳熟能詳。也頗為簡單,不會者學,會者繞道。題目如下 不用第三個變數,交換兩個數值。心得 1.時刻注意現在的i,j是最原始的i,j的什麼組合。2.out 原來必須要初始化才能用地。class program j i,j...
兩個文字檔案某一單列的交集
1.txt有一列,不都在2.txt裡 2.txt有幾列,第一列的值裡可能有1.txt的值,中英文大小寫各種符號都可能有除了 列分隔符是 awk f beginnrfnrnr fnr 1.txt 2.txt 解釋如下 f 指定分隔符 begin語句忽略了英文大小寫 nr fnr意味著在讀第乙個檔案。n...