如何使用for循环的结果填充数据框

时间:2020-11-10 18:09:48

标签: r for-loop

我正在尝试在R中编写一个for循环,该循环计算两个向量(矩阵[Z]的第j行和向量[F1])之间的距离,并将该距离放入第二个向量中一个称为结果的数据框。结果的第一列用年份(从1906年开始)填充。因此,for循环将对[Z]的每一行进行此计算,并在每次迭代后填写“结果”的每一行。这是到目前为止我拥有的代码-如果我删除了for循环并单独运行每一行(例如,如果我将所有j都替换为1),那么该代码可以实现我想要的,但是当我添加for循环时这是行不通的。我没有收到错误消息,但是结果数据框中没有显示任何值。如果有人可以帮助我弄清我的缺失,那就太好了!

请注意,Z是97 x 22矩阵,F1是1 x 22矩阵。

   results <- data.frame(matrix(nrow = 97, ncol = 2)) 
   colnames(results) <- c("year", "distance")
   for(j in 1:97) {
    data <- as.numeric(Z[c(j),])
    data2 <- as.numeric(t(F1))
    distance <- euclidian.dist(data, data2)
    results[j, 1] <- j + 1905
    results[j, 2] <- distance
   }
   View(results)

1 个答案:

答案 0 :(得分:0)

您没有指出在何处获得<?xml version="1.0" encoding="utf-8"?> <com.google.android.material.circularreveal.coordinatorlayout.CircularRevealCoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <include layout="@layout/toolbar"/> <include layout="@layout/content_main" /> </com.google.android.material.circularreveal.coordinatorlayout.CircularRevealCoordinatorLayout> 函数,因此我将在基本R中使用<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.google.android.material.tabs.TabLayout android:id="@+id/tab_view" android:layout_width="match_parent" android:layout_height="wrap_content"> <com.google.android.material.tabs.TabItem android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/alarm_clock" /> <com.google.android.material.tabs.TabItem android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/stopwatch" /> <com.google.android.material.tabs.TabItem android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/timer" /> </com.google.android.material.tabs.TabLayout> <androidx.viewpager2.widget.ViewPager2 android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> </LinearLayout> 函数。我们需要创建一些数据:

<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.appbar.AppBarLayout
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:layout_scrollFlags="scroll|enterAlways"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />


</com.google.android.material.appbar.AppBarLayout>

然后我们对euclidean.dist中的每一行运行dist

set.seed(42)
Z <- matrix(runif(97 * 22), 97, 22)
F1 <- matrix(runif(22), 1, 22)