我需要创建一个data.frame,它将通过for循环的结果一次填充一行.它有45列:其中五列的名称是静态的,但其余部分在运行时从外部CSV文件读入(作为向量).我正在寻找一些类似的东西
goalsMenu <- read.csv("Phase 1 goalsmenu.csv", header = TRUE)
colHeads <- c("analysis","patient","date",as.vector(goalsMenu$Name),"CR")
output <- data.frame(colHeads)
Run Code Online (Sandbox Code Playgroud)
但是这会创建一个列名为colHeads的单列data.frame.
colHeads <- list("analysis","patient","date",as.vector(goalsMenu$Name),"CR")
Run Code Online (Sandbox Code Playgroud)
似乎是朝着正确方向迈出的一步,但我需要"压扁"它以创建所需的data.frame结构
你能告诉我吗?
这有帮助吗?
goalsMenu <- paste("Name", 1:40, sep="")
output <- as.data.frame(matrix(rep(0, 5 + length(goalsMenu)), nrow=1))
names(output) <- c("analysis", "patient", "date", goalsMenu, "CR1", "CR2")
Run Code Online (Sandbox Code Playgroud)
基本上,我首先创建一个包含output列数的data.frame ,然后在下一步中命名这些列.但是,请注意mdsumner的评论!这样,所有列都是类numeric.您可以稍后处理:更改data.frame中的列类
如果你可以先用(某些)数据填充框架,那么你可以只分配名称().否则,您必须先列出该列表(然后再转换为data.frame):
col.names <- LETTERS[1:10] # Example column names
data <- vector("list", length(col.names))
names(data) <- col.names
print(str(data)) # Inspect the structure
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
22626 次 |
| 最近记录: |