KnitR:控制台和PDF之间的输出差异(编码)
首先,我有两个大小为15的向量: lb_结果:KnitR:控制台和PDF之间的输出差异(编码),r,character-encoding,knitr,R,Character Encoding,Knitr,首先,我有两个大小为15的向量: lb_结果: cap-color cap-color odor odor odor odor gill-spacing gill-size gill-color s
cap-color
cap-color
odor
odor
odor
odor
gill-spacing
gill-size
gill-color
stalk-surface-above-ring
stalk-color-above-ring
spore-print-color
spore-print-color
population
population
以及:
vl_结果:
buff
pink
creosote
foul
musty
pungent
close
narrow
buff
silky
cinnamon
chocolate
green
scattered
several
现在,我希望输出为:
cap-color ∈ {buff, pink}
odor ∈ {creosote, foul, musty, pungent}
gill-spacing = {close}
gill-size = {narrow}
gill-color = {buff}
stalk-surface-above-ring = {silky}
stalk-color-above-ring = {cinnamon}
spore-print-color ∈ {chocolate, green}
population ∈ {scattered, several}
我写了一个Rscript作为:
dt <- data.table("Name"=lb_result,"Var"=vl_result)
res <- dt[,paste(Var,collapse=","),by=Name]
for(i in 1:length(res$V1)){
if (length(grep(",",res$V1[i],value=T)) == 0) {
res$V1[i] = paste("= ", res$V1[i])
} else
# {res$V1[i] = paste(" \u2208 {", res$V1[i], "}")}
{res$V1[i] = paste(" ∈ {", res$V1[i], "}")}
}
for(i in 1:length(res$V1)){
print(paste(res$Name[i],res$V1[i]))
}
但是,当我在文件中插入这个Rscript时。带刀的Rnw
以PDF文件形式输出:
它显示
,而不是∈ 此问题中至少有两个编码级别。你必须确保两者都是正确的。第一级是Rnw文件的文件编码,需要将其传递到knit(…,encoding=“your file encoding”)
。第二级是LaTeX中的编码规范,通常通过inpuntec
包。例如,如果编码是UTF-8,则使用包[utf8]{inputenc}
如果您通过例如source()
将R脚本作为独立文件执行,则可能存在第三级文件编码,即R脚本的编码。如果没有更多详细信息,例如操作系统、文本编辑器以及如何调用knitr
,则很难诊断问题。至少你需要包括
library(knitr)
sessionInfo()
library(knitr)
sessionInfo()