我想在控制台中查看dput
的结果,同时使用sink
将输出重定向到文件。
> sink(file = 'test.txt', split = TRUE)
> x <- 2^(1:4)
> x # test.txt now contains: [1] 2 4 8 16
[1] 2 4 8 16
> dput(x) # where does this return value go?
> dput(x, file = 'test.txt') # test.txt is overwritten with: c(2, 4, 6, 8)
为什么
x
将其值打印到控制台(如预期的那样),但是dput(x)
不打印?(我在Windows 7上将R 3.4.3与RStudio版本1.1.423一起使用)
最佳答案
dput
实际上在期望的地方写输出,但是在期望的地方没有写输出。
运行以下代码,显示dput
输出将保持挂起状态,直到下一个普通输出为止:
sink(file = 'test.txt', split = TRUE)
x <- 2^(1:4)
x
dput(2*x,file="")
3*x
...通过以下方式提供一个test.txt:
[1] 2 4 8 16
c(4, 8, 16, 32)
[1] 6 12 24 48
另外,运行
sink()
函数以关闭文件也将强制执行挂起的输出(但将关闭连接)。sink(file = 'test.txt', split = TRUE)
x <- 2^(1:4)
x
dput(2*x,file="")
sink()
关于r - 使用接收器转移输出时,dput写入哪里?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49116123/