是否有更容易(即一行代码而不是两行!)的方式来执行以下操作:
results <- as.data.frame(str_split_fixed(c("SampleID_someusefulinfo.countsA" , "SampleID_someusefulinfo.countsB" , "SampleID_someusefulinfo.counts"), "\\.", n=2))
names(results) <- c("a", "b")
Run Code Online (Sandbox Code Playgroud)
就像是:
results <- data.frame(str_split_fixed(c("SampleID_someusefulinfo.countsA" , "SampleID_someusefulinfo.countsB" , "SampleID_someusefulinfo.counts"), "\\.", n=2), colnames = c("a", "b"))
Run Code Online (Sandbox Code Playgroud)
我做了很多,并且真的很想有办法在一行代码中使用它.
/data.table也适用,如果它比基础data.frame /更容易做到
澄清:
我的预期输出(通过在顶部运行两行代码实现 - 我希望它是一个 - 这就是它!!!)是结构的结果数据框架:
results
a b
1 SampleID_someusefulinfo countsA
2 SampleID_someusefulinfo countsB
3 SampleID_someusefulinfo counts
Run Code Online (Sandbox Code Playgroud)
我想做的是:
Sym*_*xAU 14
使用setNames()周围data.frame
setNames(data.frame(matrix(c(1,2,3,4),nrow=2,ncol=2)), c("a","b"))
# a b
#1 1 3
#2 2 4
Run Code Online (Sandbox Code Playgroud)
?setNames:
一个便利函数,用于设置对象上的名称并返回该对象
> setNames
function (object = nm, nm)
{
names(object) <- nm
object
}
Run Code Online (Sandbox Code Playgroud)
我们可以在OP 用于创建数据时使用该dimnames选项.matrixmatrix
data.frame(matrix(1:4, 2, 2, dimnames=list(NULL, c("a", "b"))))
Run Code Online (Sandbox Code Playgroud)
要么
`colnames<-`(data.frame(matrix(1:4, 2, 2)), c('a', 'b'))
Run Code Online (Sandbox Code Playgroud)