在R中嵌套python
我想使用R应用python代码。但是,由于R语法转义引号,我得到了一个错误。这段代码直接在bash中工作在R中嵌套python,python,r,bash,syntax,nested,Python,R,Bash,Syntax,Nested,我想使用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) df文件“”,第1行 >导入系统;打印(' > ^ >SyntaxErro
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)
df文件“”,第1行
>导入系统;打印('
> ^
>SyntaxError:扫描字符串文字时下线
在这里使用语法的一些想法?在尝试运行文本之前,您应该使用转义文本,特别是如果文本中可能存在变量数据。但是,您至少需要转义文本中的反斜杠:
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")
system(“python-c\”导入sys;打印('\\n.join(''.join(c)表示zip中的c(*(l.split()表示sys.stdin.readlines()如果l.strip())))\”dfout.txt)
如果使用,shQuote将自动完成,您可以使用内置功能进行输入重定向
cmd <- "python"
args <- c(
"-c",
"\"import sys; print('\\n'.join(' '.join(c) for c in zip(*(l.split() for l in sys.stdin.readlines() if l.strip()))))\""
)
system2(cmd, args, stdout="dfout.txt", stdin="df.txt")
cmd提供的答案是否有用?如果它解决了您的问题,请标记为已接受,或者如果在某些方面不正确,请告诉我。谢谢。
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")
cmd <- "python"
args <- c(
"-c",
"\"import sys; print('\\n'.join(' '.join(c) for c in zip(*(l.split() for l in sys.stdin.readlines() if l.strip()))))\""
)
system2(cmd, args, stdout="dfout.txt", stdin="df.txt")