y <- as.numeric (readline(prompt="How many metabolites?: ")) # Get no. metabolites used
x <- as.numeric (readline(prompt="How many concs?: ")) # Get no. concentrations of each metabolite used
print(paste("enter", y," metabolite names separated by return: ")) # User input for metabolite names
c <- scan(nmax=y,what = character())到目前为止,我们已经掌握了代谢物的数量、浓度和代谢物名称。
print(paste("enter", x," numbers for metabolite x separated by return: "))
a <- scan(nmax=x,what=double())
df = data.frame(conc=x,value=a)此代码捕捉x种不同的代谢物浓度。关于如何扩大这一范围以实现以下目标,有何想法?
期望输出假设x= 5,y=2(用户指定的conc值):
metabolite conc1 conc2 conc3 conc4 conc5
metabolite1 100 10 1 0.1 0.001
metabolite2 10 1 0.1 0.01 0.001发布于 2017-09-05 01:51:24
这就是你想要做的
y <- as.numeric(readline(prompt = "How many metabolites?: "))
x <- as.numeric(readline(prompt = "How many concs?: "))
print(paste("enter", y, " metabolite names separated by return: "))
c <- scan(nmax = y, what = character())
data <- matrix(nrow = x, ncol = y)
for (metab in 1:y) {
print(paste("enter", x, " numbers for metabolite", c[metab], "separated by return: "))
data[metab, ] <- scan(nmax = x, what = double())
}
df <- as.data.frame(data)
df <- cbind(c, df)
colnames(df) <- c("metabolite", paste0("conc", 1:x))
df但我不建议这样做,相反,您应该自己生成一个csv,这样您就可以
conc_data.csv
metabolite,conc1,conc2,conc3,conc4,conc5
metabolite1,100,10,1,0.1,0.001
metabolite2,10,1,0.1,0.01,0.001在你的代码中
df <- read.csv("conc_data.csv")您可以在excel中准备csv,只需填写并使用save as,然后在文件类型中选择CSV。始终使用文本编辑器打开csv文件,以检查excel没有插入额外的列或行。
https://stackoverflow.com/questions/46045431
复制相似问题