আর [বদ্ধ] ল্যাটেক্স টেবিল তৈরির সরঞ্জামসমূহ


268

সাধারণ অনুরোধে, আর-তে লেটেক্স টেবিল তৈরির বিষয়ে একটি সম্প্রদায় উইকি this এই পোস্টে আমি সর্বাধিক ব্যবহৃত প্যাকেজগুলি এবং ব্লগগুলি কম স্ট্রেড-ফরোয়ার্ড অবজেক্ট থেকে ল্যাটেক্স টেবিল তৈরির কোড সহ একটি সংক্ষিপ্তসার দেব। আমি মিস করা যেকোনটিকে যুক্ত করতে নির্দ্বিধায় অনুভব করুন এবং / অথবা কীভাবে সুন্দরভাবে ফর্ম্যাটেড ল্যাটেক্স টেবিলগুলি আর এর সাথে তৈরি করবেন সে সম্পর্কে টিপস, ইঙ্গিত এবং সামান্য কৌশল দিন give

প্যাকেজগুলি:

  • xtable : সর্বাধিক সাধারণ বস্তুর মানক টেবিলগুলির জন্য। উদাহরণ সহ একটি দুর্দান্ত গ্যালারী এখানে পাওয়া যাবে
  • মিসিস্ক : জরিপ তথ্য পরিচালনার সরঞ্জামটিতে (বেসিক) রিগ্রেশন মডেল অনুমানের ল্যাটেক্স টেবিলের জন্য কিছু সরঞ্জাম রয়েছে।
  • Hmisc একটি ফাংশন ধারণ করে latex()যা পছন্দের অবজেক্ট সহ একটি টেক্সট ফাইল তৈরি করে। এটি বেশ নমনীয় এবং longtableল্যাটেক্স টেবিলগুলি আউটপুটও করতে পারে । সহায়তা ফাইলটিতে প্রচুর তথ্য রয়েছে?latex
  • মিসক্যাফঙ্কস একটি ঝরঝরে ফাংশন 'লেটেক্সটেবল' রয়েছে যা ম্যাট্রিক্স ডেটা মিশ্র বর্ণানুক্রমিক এবং সংখ্যাসূচক এন্ট্রিগুলিকে একটি LaTeX টেবিলের মধ্যে রূপান্তর করে এবং কনসোলে মুদ্রণ করে, যাতে সেগুলি অনুলিপি করে একটি ল্যাটেক্স ডকুমেন্টে আটকানো যায়।
  • টেক্স্রেগ প্যাকেজ ( জেএসএস পেপার ) পরিসংখ্যানের মডেল আউটপুটটিকে ল্যাটেক্স টেবিলগুলিতে রূপান্তর করে। একাধিক মডেল একত্রিত করে। নেটওয়ার্ক মডেল এবং মাল্টিলেভেল মডেল (lme এবং lme4) সহ প্রায় 50 টি বিভিন্ন মডেলের ধরণের সাথে মোকাবিলা করতে পারে।
  • রিপোর্টটোলস প্যাকেজ ( জেএসএস পেপার ) ক্রমাগত, শ্রেণিবদ্ধ এবং তারিখের ভেরিয়েবলগুলির বর্ণনামূলক পরিসংখ্যানগুলির জন্য আরেকটি বিকল্প।
  • বর্ণনামূলক পরিসংখ্যানগুলির জন্য টেবিল প্যাকেজটি সম্ভবত সবচেয়ে সাধারণ ল্যাটেক্স টেবিল তৈরির প্যাকেজ
  • স্টারগাজার প্যাকেজটি তুলনামূলক পরিসংখ্যানের মডেলগুলির সারাংশ সারণী তৈরি করে

ব্লগ এবং কোড স্নিপেট

সম্পর্কিত প্রশ্নগুলি :


4
ক্রস ভ্যালিডেটেড (stats.SE) এ, নিম্নলিখিত ব্লগ পোস্টটি এখানে পাঠকদের জন্য আগ্রহী হবে: কার্যকর টেবিলগুলি তৈরি করার বিষয়ে কিছু নোট
গুং - মনিকা

2
আপনি ztable ব্যবহার করতে পারেন। এটি ল্যাটেক্স এবং এইচটিএমএল ফর্ম্যাটে সহজেই জেব্রা স্ট্রিপযুক্ত টেবিল তৈরি করে। এটি বেশ নমনীয় এবং সহজ: cran.r-project.org/web/packages/ztable/vignettes/ztable.html
স্ক্যান

আর (বা আরস্টুডিও) এর অনেকগুলি টেবিলের সাথে কাজ করার এবং এগুলি আরও বৃহত প্রকল্পে এম্বেড করার জন্য টেক্সটস্টুডিওর মতো একটি বাহ্যিক লেটেক্স প্রোগ্রাম থেকে সেগুলি ব্যবহার করার জন্য প্রস্তাবিত "পদ্ধতি" কী?
স্ক্যান

1
@ সাকান এটি ল্যাটেক্স নির্দিষ্ট। আপনি যদি "শিশুদের" নথি তৈরি করেন তবে আপনি সেগুলি ল্যাটেক্স নথি হিসাবে তৈরি করেন এবং হয় includeবা ব্যবহার করেন input। আপনি ব্যবহার করতে পারেন writeLines()যা উভয় সঙ্গে কাজ করে kable()এবং xtable()। .Tex ফাইল হিসাবে সংরক্ষণ করুন এবং সমস্যার সমাধান হয়েছে।
জোরিস মেয়েস

1
ওও, আপনি যদি একাধিক নথি ব্যবহার করেন এবং সেগুলিতে একটি সংযুক্ত করতে চান (আপনি এটির বিষয়ে পরিষ্কার হন না), আপনি নথিগুলি তৈরি করেন এবং আপনি inputঅন্য নথিতে একটি নথি পেতে ব্যবহার করেন। ক্ষীরের ম্যানুয়ালটি আপনাকে বলবে যে এটি সেই জায়গায় নথির সামগ্রী টাইপ করার মতোই, সুতরাং আপনি উপস্থাপিত সমস্ত সেটআপ কপি-পেস্ট করার দরকার নেই।
জোরিস মেয়েস

উত্তর:


22

আমি "ব্রিউ" প্যাকেজটির একটি উল্লেখ যুক্ত করতে চাই। আপনি একটি ব্রিউ টেমপ্লেট ফাইল লিখতে পারেন যা স্থানধারীদের সাথে লটেক্স হবে এবং তারপরে আপনার লটেক্সে \ অন্তর্ভুক্ত বা \ ইনপুট করার জন্য একটি টেক্স ফাইল তৈরি করতে "ব্রিউ" করুন। কিছুটা এইরকম:

\begin{tabular}{l l}
A & <%= fit$A %> \\
B & <%= fit$B %> \\
\end{tabular}

ক্রু সিনট্যাক্স এছাড়াও লুপগুলি পরিচালনা করতে পারে, তাই আপনি প্রতিটি ডেটা ফ্রেমের জন্য একটি সারণী সারি তৈরি করতে পারেন।


প্যাকেজ আর.আরএসপি এবং এর ফাংশন স্ট্রিং () ব্রিউ :: ব্রু () এর মতো। এটি আরও ভাল কিনা তা নিশ্চিত নন তবে প্যাকেজে অবশ্যই আরও বেশি জিনিস রয়েছে। উভয় ক্ষেত্রেই আমি এই পদ্ধতির পছন্দ করি কারণ এটি প্রজননযোগ্যতার ত্যাগ না করার সময় টেক্সট কোডে আরও নমনীয়তা দেয়।
রিচার্ড ডিসালভো

21

এই প্রশ্নটি তৈরি করার জন্য জরিসকে ধন্যবাদ। আশা করি, এটি একটি সম্প্রদায় উইকিতে পরিণত করা হবে।

ক্ষীরের বুকট্যাবগুলি প্যাকেজগুলি দেখতে সুন্দর সারণী তৈরি করে। বুকট্যাবগুলি ব্যবহার করে এমন ল্যাটেক্স টেবিল তৈরি করতে কীভাবে xtable ব্যবহার করবেন সে সম্পর্কে একটি ব্লগ পোস্ট এখানে

আমি apsrtableপ্যাকেজটি মিশ্রণটিতেও যুক্ত করব কারণ এটি দেখতে সুন্দর রিগ্রেশন টেবিল তৈরি করে।

অন্য আইডিয়া: এই প্যাকেজগুলির মধ্যে কয়েকটি (উদাহরণস্বরূপ মিস্কিস এবং এপ্রসটেবল) কোডের সহজ বর্ধনকে বিভিন্ন রিগ্রেশন অবজেক্টের জন্য সারণী তৈরি করতে দেয়। এরকম একটি উদাহরণ প্রশ্নের মধ্যে দেখানো lme4 মিসিস কোড। এই জাতীয় কোড স্নিপেট সংগ্রহ করার জন্য গিথুব সংগ্রহ শুরু করার অর্থটি বোধগম্য হতে পারে এবং সময়ের সাথে সাথে এটি এটিকে মিসিস প্যাকেজে যোগ করতে পারে। কোনো সেবার?


18

নক্ষত্রবিজ্ঞানী প্যাকেজ অন্য ভালো বিকল্প। এটি অনেকগুলি ব্যবহৃত ব্যবহৃত ফাংশন এবং প্যাকেজগুলি (এলএম, গ্ল্যাম, স্যাভিগ, বেঁচে থাকা, পিএসসিএল, এআর), পাশাপাশি জেলিগ থেকে অবজেক্টগুলিকে সমর্থন করে। রিগ্রেশন সারণী ছাড়াও, এটি ডেটা ফ্রেমের জন্য সংক্ষিপ্ত পরিসংখ্যান আউটপুট করতে পারে, বা সরাসরি ডেটা ফ্রেমের সামগ্রী আউটপুট করতে পারে।


15

আমার কাছে কয়েকটি কৌশল এবং অষ্টেবল এবং লেটেক্সের আকর্ষণীয় 'বৈশিষ্ট্যগুলি' রয়েছে যা আমি এখানে ভাগ করব work

ট্রিক # 1: কলাম এবং ট্রিক # 2 এ সদৃশগুলি সরানো: বুকট্যাবগুলি ব্যবহার করে

প্রথমত, প্যাকেজগুলি লোড করুন এবং আমার পরিষ্কার ফাংশনটি সংজ্ঞায়িত করুন

<<label=first, include=FALSE, echo=FALSE>>= 
    library(xtable)
    library(plyr)

    cleanf <- function(x){     
        oldx <- c(FALSE, x[-1]==x[-length(x)])  
        # is the value equal to the previous?    
        res <- x
        res[oldx] <- NA
        return(res)} 

এখন কিছু জাল তথ্য তৈরি করুন

data<-data.frame(animal=sample(c("elephant", "dog", "cat", "fish", "snake"), 100,replace=TRUE),
            colour=sample(c("red", "blue", "green", "yellow"), 100,replace=TRUE),
            size=rnorm(100,mean=500, sd=150),
            age=rlnorm(100, meanlog=3, sdlog=0.5))

    #generate a table
    datatable<-ddply(data, .(animal, colour), function(df) {
                return(data.frame(size=mean(df$size), age=mean(df$age)))
            })

এখন আমরা একটি টেবিল তৈরি করতে পারি এবং লেবেল কলামগুলিতে নকল প্রবেশগুলি সরিয়ে ফেলা ফাংশন ব্যবহার করতে পারি।

cleandata<-datatable
cleandata$animal<-cleanf(cleandata$animal)
cleandata$colour<-cleanf(cleandata$colour)
@ 

এটি একটি সাধারণ xtable

<<label=normal, results=tex, echo=FALSE>>=
print(
    xtable(
        datatable
        ),
        tabular.environment='longtable',
        latex.environments=c("center"), 
        floating=FALSE, 
        include.rownames=FALSE
    )
@ 

এটি একটি সাধারণ টেক্সটবল যেখানে কাস্টম ফাংশনটি নকলকে এনএতে রূপান্তরিত করে

<<label=cleandata, results=tex, echo=FALSE>>=
print(
    xtable(
        cleandata
        ),
        tabular.environment='longtable',
        latex.environments=c("center"), 
        floating=FALSE, 
        include.rownames=FALSE
    )
@ 

এই টেবিলটি বুকট্যাব প্যাকেজটি ব্যবহার করে (এবং শিরোনামগুলিতে একটি \ usepackage {booktabs needs প্রয়োজন)

\begin{table}[!h] 
        \centering
        \caption{table using booktabs.}
        \label{tab:mytable}
<<label=booktabs, echo=F,results=tex>>= 
            mat <- xtable(cleandata,digits=rep(2,ncol(cleandata)+1))
            foo<-0:(length(mat$animal))
            bar<-foo[!is.na(mat$animal)]
            print(mat, 
                  sanitize.text.function = function(x){x},
                  floating=FALSE,
                  include.rownames=FALSE,
                  hline.after=NULL, 
                  add.to.row=list(pos=list(-1,bar,nrow(mat)), 
                  command=c("\\toprule ", "\\midrule ", "\\bottomrule ")))
  #could extend this with \cmidrule to have a partial line over
  #a sub category column and \addlinespace to add space before a total row
@ 

12

প্যাকেজ ট্যারিফ্যাক্সে দুটি ইউটিলিটিগুলি নেস্টেড হেরেরচিগুলির মাল্টি-সারি টেবিল তৈরি করতে কনসার্টে ব্যবহার করা যেতে পারে।

library(datasets)
library(taRifx)
library(xtable)

test.by <- bytable(ChickWeight$weight, list( ChickWeight$Chick, ChickWeight$Diet) )
colnames(test.by) <- c('Diet','Chick','Mean Weight')
print(latex.table.by(test.by), include.rownames = FALSE, include.colnames = TRUE, sanitize.text.function = force)
#   then add \usepackage{multirow} to the preamble of your LaTeX document
#   for longtable support, add ,tabular.environment='longtable' to the print command (plus add in ,floating=FALSE), then \usepackage{longtable} to the LaTeX preamble

নমুনা টেবিল আউটপুট


2
উপজাতীয় () সহ ইনপুট হিসাবে কেবল একই ভেক্টরের পরিবর্তে পুরো ডেটা ফ্রেমের সাথে একই জিনিস করার কোনও উপায় আছে কি?
থ্রাপিডি

5

... এবং ট্রিক # 3 এক্সটিবেলে একাধিক লাইন প্রবেশ করুন

আরও কিছু ডেটা তৈরি করুন

moredata<-data.frame(Nominal=c(1:5), n=rep(5,5), 
        MeanLinBias=signif(rnorm(5, mean=0, sd=10), digits=4), 
        LinCI=paste("(",signif(rnorm(5,mean=-2, sd=5), digits=4),
                ", ", signif(rnorm(5, mean=2, sd=5), digits=4),")",sep=""),
        MeanQuadBias=signif(rnorm(5, mean=0, sd=10), digits=4), 
        QuadCI=paste("(",signif(rnorm(5,mean=-2, sd=5), digits=4),
                ", ", signif(rnorm(5, mean=2, sd=5), digits=4),")",sep=""))

names(moredata)<-c("Nominal", "n","Linear Model \nBias","Linear \nCI", "Quadratic Model \nBias", "Quadratic \nCI")

সঠিক লেটেক্স নিউলাইন কমান্ডের সাহায্যে কলামের নামগুলি প্রতিস্থাপন করতে স্যানিটাইজ ফাংশনটি ব্যবহার করে এখন আমাদের টেক্সটবল তৈরি করুন (ডাবল ব্যাকস্ল্যাশগুলি সহ আর খুশি হলেন)

<<label=multilinetable, results=tex, echo=FALSE>>=
foo<-xtable(moredata)
align(foo) <- c( rep('c',3),'p{1.8in}','p{2in}','p{1.8in}','p{2in}' )
print(foo, 
            floating=FALSE, 
            include.rownames=FALSE,
            sanitize.text.function = function(str) {
                str<-gsub("\n","\\\\", str, fixed=TRUE)

                return(str)
            }, 
            sanitize.colnames.function = function(str) {
                str<-c("Nominal", "n","\\centering Linear Model\\\\ \\% Bias","\\centering Linear \\\\ 95\\%CI", "\\centering Quadratic Model\\\\ \\%Bias", "\\centering Quadratic \\\\ 95\\%CI \\tabularnewline")
                return(str)
            })
@  

(যদিও এটি নিখুঁত নয়, যেমন আমাদের দরকার \ ট্যাবুলারনিউলাইন যাতে টেবিলটি সঠিকভাবে ফর্ম্যাট হয়, এবং এক্সটিবেল এখনও একটি চূড়ান্ত স্থানে ফেলেছে), তাই আমরা টেবিল শিরোনামের নীচে একটি ফাঁকা লাইন দিয়ে শেষ করি)


5

আপনি আর প্যাকেজ micsFuncs থেকে ল্যাটেক্সটেবল ফাংশনটি ব্যবহার করতে পারেন:

http://cran.r-project.org/web/packages/miscFuncs/index.html

লেটেক্সটেবল (এম) যেখানে এম মিশ্র বর্ণানুক্রমিক এবং সংখ্যাসূচক এন্ট্রিসহ একটি ম্যাট্রিক্স যেখানে একটি বেসিক ল্যাটেক্স টেবিলটিকে স্ক্রিনে আউটপুট দেয়, যা অনুলিপি করে একটি ল্যাটেক্স ডকুমেন্টে আটকানো যায়। যেখানে অল্প সংখ্যক রয়েছে, এটি সূচী সূচীকরণের সাথে এগুলি প্রতিস্থাপন করে (উদাহরণস্বরূপ 1.2x10 ^ 3 - 3})


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.