R 逐行检查数据帧并写入文件
我正在学习R,对Python有一点了解。 我觉得R和Python在某些方面是相似的,而在另一些方面则非常相似 尤其是在迭代或读取某些文件中的数据时,我会陷入困境 我有一个数据框R 逐行检查数据帧并写入文件,r,R,我正在学习R,对Python有一点了解。 我觉得R和Python在某些方面是相似的,而在另一些方面则非常相似 尤其是在迭代或读取某些文件中的数据时,我会陷入困境 我有一个数据框 temp <- A B C 1 2 3 4 5 6 7 8 8 我试过这个 A <- temp[1] B <- temp[2] C <- temp[3] print(paste("[", A, B, as.character(C), "]",
temp <-
A B C
1 2 3
4 5 6
7 8 8
我试过这个
A <- temp[1]
B <- temp[2]
C <- temp[3]
print(paste("[", A, B, as.character(C), "]", sep = ","))
我试过其他几种方法,比如
`test <- rbind(temp)`
最后,它总是归结为同一件事:当我尝试打印/粘贴它时,它将它逐列排列,而不是逐行排列
我还摆弄着
array()
。感觉这样做是正确的函数,但是传递list
作为FUN
参数似乎不正确…这里有一个解决方案,将数据写入myfile.txt
:
cat(apply(temp, 1, function(x)paste0('[', x[1], ' ', x[2], ' "', x[3], '"]', '\n')), sep='', file='myile.txt')
(本机)当涉及数组/向量/矩阵时,python和R的工作方式非常不同。必须隐式地指示Python迭代每个元素,而R则以本机方式进行迭代
如果您想要的输出是[1,2,3”]、\n[4,5,6”]、\n[7,8,9”]、\n
,您可以分两步完成(尽管另一个答案有一个更直接的解决方案,但出于学习目的,我将其包括在内):
#1连接每一行:
谢谢你的帮助。什么是函数(x)
呢?看看?应用<代码>函数(x)
是一个函数,它将数据帧的一行作为输入向量,打印括号中的值,并引用第三个元素。是的,我理解。但是function(x)
jsut是虚拟的吗?!为什么不使用paste()
函数而不是函数(x)
?因为类似apply(temp,1,paste0)
的东西不允许您区分paste0
所采用的向量中的不同元素。在自定义函数中包装paste0时,这就成为可能。啊,现在我明白了。谢谢是的,它的工作原理非常不同,我刚刚开始学习R。然而,我把apply()
函数弄得一团糟,但我不知道该填充哪个函数。。。您(与之前的编写者一样)使用了函数(x)
。这是什么?函数(x)
是一个lambda函数或匿名函数,仅在执行该行时存在。
`test <- rbind(temp)`
for(i in temp) {
print(temp[,])
print(paste("[", temp[,], "]", sep = ","))
}
cat(apply(temp, 1, function(x)paste0('[', x[1], ' ', x[2], ' "', x[3], '"]', '\n')), sep='', file='myile.txt')
#1 concatenate each row:
rows <- apply(temp, 1, function(x) paste0('[', x[1], ' ', x[2], ' "', x[3], '"]'))
#2 write rows to file
writeLines(rows, con="myile.txt')