我想使用R应用python代码。但是,由于R语法转义引号,我得到了一个错误。这段代码直接在bash中工作。你知道吗
df <- 'anm1 sam1 TT GG AA BB'
df <- read.table(text=df, header=F)
write.table(df, "df.txt", col.names=F, row.names=F, quote=F)
在bash中:
python -c "import sys; print('\n'.join(' '.join(c) for c in zip(*(l.split() for l in sys.stdin.readlines() if l.strip()))))" < df.txt > dfout.txt
cat dfout.txt
anm1
sam1
TT
GG
AA
BB
当试图将其嵌套在R中时:
system("python -c \"import sys; print('\n'.join(' '.join(c) for c in zip(*(l.split() for l in sys.stdin.readlines() if l.strip()))))\" < df.txt > dfout.txt")
> File "<string>", line 1
> import sys; print('
> ^
> SyntaxError: EOL while scanning string literal
有什么办法让语法在这里起作用吗?你知道吗
在尝试运行文本之前,应该使用shQuote对文本进行转义,特别是如果文本中可能存在变量数据的话。但是,至少您需要避开文本中的反斜杠:
如果您使用system2,shQuote将自动完成,并且您可以使用内置工具进行输入重定向
相关问题 更多 >
编程相关推荐