<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Linux | Little World</title>
    <link>/categories/linux/</link>
      <atom:link href="/categories/linux/index.xml" rel="self" type="application/rss+xml" />
    <description>Linux</description>
    <generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>en-us</language><copyright>©Yihong WANG 2020</copyright><lastBuildDate>Mon, 20 Jan 2020 00:00:00 +0000</lastBuildDate>
    <image>
      <url>/img/icon-192.png</url>
      <title>Linux</title>
      <link>/categories/linux/</link>
    </image>
    
    <item>
      <title>用R取代Stata与SAS</title>
      <link>/post/2020-01-20-r-stata-workflow/</link>
      <pubDate>Mon, 20 Jan 2020 00:00:00 +0000</pubDate>
      <guid>/post/2020-01-20-r-stata-workflow/</guid>
      <description>
&lt;script src=&#34;../../rmarkdown-libs/jquery/jquery.min.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;../../rmarkdown-libs/elevate-section-attrs/elevate-section-attrs.js&#34;&gt;&lt;/script&gt;

&lt;div id=&#34;TOC&#34;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#安装stata&#34;&gt;安装Stata&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#在r中调用stata&#34;&gt;在R中调用Stata&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#三种环境下数据互通&#34;&gt;三种环境下数据互通&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;div id=&#34;安装stata&#34; class=&#34;section level2&#34;&gt;
&lt;h2&gt;安装Stata&lt;/h2&gt;
&lt;p&gt;首先安装&lt;code&gt;ncurses5-compat-libs&lt;/code&gt;和&lt;code&gt;libpng12&lt;/code&gt;这两个包，其次&lt;/p&gt;
&lt;pre class=&#34;bash&#34;&gt;&lt;code&gt;% sudo -s

cd /tmp/

mkdir statafiles

cd statafiles

tar -zxf /home/you/Downloads/Stata14Linux64.tar.gz

cd /usr/local

mkdir stata14

cd stata14

/tmp/statafiles/install&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安完之后把安装目录加到环境变量中去。我选择编辑&lt;code&gt;/etc/profile&lt;/code&gt;加入：&lt;/p&gt;
&lt;pre class=&#34;bash&#34;&gt;&lt;code&gt;export PATH=&amp;quot;$PATH:/usr/local/stata14&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;若想不重启就生效可以&lt;code&gt;source /etc/profile&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Lic文件可以直接COPY到安装目录，或者在目录中放&lt;code&gt;stata.lic.tar.gz&lt;/code&gt;。&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;在r中调用stata&#34; class=&#34;section level2&#34;&gt;
&lt;h2&gt;在R中调用Stata&lt;/h2&gt;
&lt;p&gt;通过&lt;a href=&#34;https://github.com/lbraglia/RStata&#34;&gt;&lt;code&gt;RStata&lt;/code&gt;&lt;/a&gt;实现&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;#run Stata in R----
library(&amp;quot;RStata&amp;quot;)
options(&amp;quot;RStata.StataPath&amp;quot; = &amp;quot;D:\\Stata15\\StataSE-64&amp;quot;) #office
options(&amp;quot;RStata.StataPath&amp;quot; = &amp;quot;/usr/local/stata14/stata&amp;quot;) #linux #cannot use stata-se?
options(&amp;quot;RStata.StataVersion&amp;quot; = 14)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id=&#34;三种环境下数据互通&#34; class=&#34;section level2&#34;&gt;
&lt;h2&gt;三种环境下数据互通&lt;/h2&gt;
&lt;p&gt;R下通过两个包&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;library(haven) #nead read_dta to read dta
library(rio) # rio::import to read sas data
#haven::read_sas can also import sas7bdat
f1 &amp;lt;- str_c(data_loc,&amp;quot;after2007.sas7bdat&amp;quot;,sep = &amp;quot;/&amp;quot;) 
o1 &amp;lt;- str_c(data_loc,&amp;quot;after2007.dta&amp;quot;,sep = &amp;quot;/&amp;quot;) 
after2007_raw &amp;lt;-  import(f1)
after2007 %&amp;gt;% 
  mutate_if(is.numeric, as.integer) %&amp;gt;% 
  write_dta(.,o1, version = 12)
# Because sas only supports Stata 12 files (or earlier) while haven supports stata versions 8-15.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如以上方法都无法顺利读入sas7bdat，用SAS中转&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;#import stata data file, only supports 12 or earlier
PROC IMPORT OUT= WORK.S1 
            DATAFILE= &amp;quot;E:\after2007.dta&amp;quot; 
            DBMS=STATA REPLACE;
RUN;

proc export data=raw1 outfile= &amp;quot;D:\sample.dta&amp;quot; replace;
run;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Manjaro折腾记</title>
      <link>/post/manjaro/</link>
      <pubDate>Wed, 06 Nov 2019 00:00:00 +0000</pubDate>
      <guid>/post/manjaro/</guid>
      <description>

&lt;div id=&#34;TOC&#34;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#缘起&#34;&gt;缘起&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#折腾备忘录&#34;&gt;折腾备忘录&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#安好之后换中国源&#34;&gt;安好之后换中国源&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#n卡驱动&#34;&gt;N卡驱动&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#中文输入法&#34;&gt;中文输入法&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#deepin桌面&#34;&gt;Deepin桌面&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#安装miniconda&#34;&gt;安装miniconda&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#搭建服务并打开端口&#34;&gt;搭建服务并打开端口&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#chrome-remote-desktop&#34;&gt;Chrome Remote Desktop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#系统备份和恢复&#34;&gt;系统备份和恢复&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;div id=&#34;缘起&#34; class=&#34;section level2&#34;&gt;
&lt;h2&gt;缘起&lt;/h2&gt;
&lt;p&gt;一切的开始应该是从折腾家庭影院开始。最早的解决方案是Windows做服务器，不太理想，于是入手了黑群晖。在黑群晖一路走来，点亮了无数新的技能点。再加上非常幸运的有公网IP，可以折腾的余地大大增加了。在群晖系统里玩了一阵子docker之后，就想着要搞一个Linux来玩玩，不想用自己的台式机折腾，查了查说最好的linux笔记本是Chromebook，说是丝滑般的Chrome体验以及是续航最久的Linux本子，加上便宜，果断入手。到后之后发现真不错，Chrome OS再加上Android再加上Linux简直了，基本上出门的需求可以满足，虽然说我也不爱出门。但玩着玩着看到人家说最好的Linux发行版是WSL，WSL需要更新windows 10，但我家里的台式机一直停留在15年的windows版本，一升级就蓝屏循环中，这回干脆咬牙升级了下系统，玩上了WSL，想用来开docker布服务吧，我看着Windows的防火墙就头疼，还是算了。但在用Chromebook的过程中发现这个触摸板手势真的很爽啊！想在Windows下也有这么爽，入了一个联想触摸板，是旧型号，只支持Windows 8的手势，突然又幻想Linux下对触摸板的驱动是不是好些呢（做梦，最后实践表明Manjaro根本只把它认成鼠标而非触摸板），于是搞起了双系统…&lt;/p&gt;
&lt;p&gt;现在的结果是爽死了，感觉自己省了好多买服务器的钱！我真是太机智了！&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;折腾备忘录&#34; class=&#34;section level2&#34;&gt;
&lt;h2&gt;折腾备忘录&lt;/h2&gt;
&lt;p&gt;以防将来又需要重装，写下安装的注意事项供未来的我参考。安装iso用的是Manjaro KDE，不要用xfce版。&lt;/p&gt;
&lt;div id=&#34;安好之后换中国源&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;安好之后换中国源&lt;/h3&gt;
&lt;pre class=&#34;bash&#34;&gt;&lt;code&gt;# 中国区镜像排序，一般选择前两个镜像
sudo pacman-mirrors -i -c China -m rank
##更新数据源
sudo pacman -Syy 
## 添加archlinuxcn源
sudo nano /etc/pacman.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在文件最后添加&lt;/p&gt;
&lt;pre class=&#34;bash&#34;&gt;&lt;code&gt;[archlinuxcn]
SigLevel = Optional TrustedOnly
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&#34;bash&#34;&gt;&lt;code&gt;sudo pacman -Syyu //更新数据源
sudo pacman -S archlinuxcn-keyring //安装导入GPG key&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id=&#34;n卡驱动&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;N卡驱动&lt;/h3&gt;
&lt;pre class=&#34;bash&#34;&gt;&lt;code&gt;sudo mhwd -a pci nonfree 0300
sudo reboot
nvidia-settings&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id=&#34;中文输入法&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;中文输入法&lt;/h3&gt;
&lt;pre class=&#34;bash&#34;&gt;&lt;code&gt;#中文字体
sudo pacman -S adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts
sudo pacman -S fcitx fcitx-googlepinyin fcitx-im fcitx-configtool

# 编辑 ~/.xinitrc sudo nano ~/.xprofile

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=&amp;quot;@im=fcitx&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id=&#34;deepin桌面&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;Deepin桌面&lt;/h3&gt;
&lt;p&gt;安装dde&lt;/p&gt;
&lt;pre class=&#34;bash&#34;&gt;&lt;code&gt;sudo pacman -S deepin deepin-extra&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;修改 /etc/lightdm/lightdm.conf&lt;/p&gt;
&lt;pre class=&#34;bash&#34;&gt;&lt;code&gt;sudo cp /etc/lightdm/lightdm.conf /etc/lightdm/lightdm.conf.bak

sudo sed -i &amp;#39;s/greeter-session=lightdm-.*/greeter-session=lightdm-deepin-greeter/g&amp;#39; /etc/lightdm/lightdm.conf

sudo sed -i &amp;#39;s/user-session=xfce/user-session=deepin/g&amp;#39; /etc/lightdm/lightdm.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;选择桌面:注销账户，在登录界面右下角选择 deepin 桌面图标&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;安装miniconda&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;安装miniconda&lt;/h3&gt;
&lt;pre class=&#34;bash&#34;&gt;&lt;code&gt;wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
sh Miniconda3-latest-Linux-x86_64.sh 

# 编辑 ~/.bash_profile,在最后添加如下环境变量（注意PATH要在前面）
export PATH=&amp;quot;$PATH:$HOME/miniconda3/bin&amp;quot;

# 编辑完成后
source .bash_profile

# 进入base环境或新建的python环境
source activate

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;之后便可conda和pip安装包了。&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;搭建服务并打开端口&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;搭建服务并打开端口&lt;/h3&gt;
&lt;p&gt;用的是&lt;a href=&#34;https://wiki.archlinux.org/index.php/Uncomplicated_Firewall&#34;&gt;ufw&lt;/a&gt;。&lt;/p&gt;
&lt;div id=&#34;rstudio-server开机自动运行&#34; class=&#34;section level4&#34;&gt;
&lt;h4&gt;Rstudio Server开机自动运行&lt;/h4&gt;
&lt;pre class=&#34;bash&#34;&gt;&lt;code&gt;sudo rstudio-server verify-installation

# 查看狀態
systemctl status rstudio-server
# 啟動
systemctl start rstudio-server
# 關閉
systemctl stop rstudio-server

#auto start
sudo systemctl enable rstudio-server&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;太爽了！这篇post就是在Rstudio Server写就。&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;jupyter-lab&#34; class=&#34;section level4&#34;&gt;
&lt;h4&gt;Jupyter lab&lt;/h4&gt;
&lt;p&gt;在&lt;code&gt;/etc/systemd/system&lt;/code&gt;下添加&lt;code&gt;jupyter.service&lt;/code&gt;文件&lt;/p&gt;
&lt;pre class=&#34;bash&#34;&gt;&lt;code&gt;#sudo nano /etc/systemd/system/jupyter.service
[Unit]
Description=Jupyter Lab

[Service]
Type=simple
PIDFile=/run/jupyter.pid
ExecStart=/home/wyih/anaconda3/bin/jupyter lab --ip 192.168.6.100 --config=/home/wyih/.jupyter/jupyter_notebook_config.py
User=wyih
Group=wyih
WorkingDirectory=/home/wyih/Jupyter Notebook
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;开启服务&lt;/p&gt;
&lt;pre class=&#34;bash&#34;&gt;&lt;code&gt;systemctl enable jupyter.service
systemctl daemon-reload
systemctl restart jupyter.service&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href=&#34;https://jupyter-notebook.readthedocs.io/en/stable/public_server.html&#34;&gt;&lt;code&gt;jupyter_notebook_config.py&lt;/code&gt;配置&lt;/a&gt;:&lt;/p&gt;
&lt;pre class=&#34;python&#34;&gt;&lt;code&gt;c.NotebookApp.ip = &amp;#39;*&amp;#39;  # 允许访问此服务器的 IP，星号表示任意 IP
c.NotebookApp.password = u&amp;#39;sha1:xxx:xxx&amp;#39; # 之前生成的密码 hash 字串
c.NotebookApp.open_browser = False # 运行时不打开本机浏览器
c.NotebookApp.port = 8889 # 使用的端口
c.NotebookApp.allow_remote_access = True
## 是否允许notebook在root用户下运行.
c.NotebookApp.allow_root = True&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;chrome-remote-desktop&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;Chrome Remote Desktop&lt;/h3&gt;
&lt;ol style=&#34;list-style-type: decimal&#34;&gt;
&lt;li&gt;installed “chrome-remote-desktop” from AUR and Chrome extension.&lt;/li&gt;
&lt;li&gt;Executed &lt;code&gt;crd --setup&lt;/code&gt; in the terminal as normal user - was requested sudo password&lt;/li&gt;
&lt;li&gt;edited “.chrome-remote-desktop-session” file deleting the # in front of “exec /usr/bin/startkde” line&lt;/li&gt;
&lt;li&gt;accepted screen resolution&lt;/li&gt;
&lt;li&gt;executed &lt;code&gt;crd --restart&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;好像还是不能开始自动运行CRD。&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;系统备份和恢复&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;系统备份和恢复&lt;/h3&gt;
&lt;p&gt;还没研究明白。&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
    </item>
    
  </channel>
</rss>
